0000096536-21-000015.txt : 20210827 0000096536-21-000015.hdr.sgml : 20210827 20210827162416 ACCESSION NUMBER: 0000096536-21-000015 CONFORMED SUBMISSION TYPE: 10-K PUBLIC DOCUMENT COUNT: 81 CONFORMED PERIOD OF REPORT: 20210531 FILED AS OF DATE: 20210827 DATE AS OF CHANGE: 20210827 FILER: COMPANY DATA: COMPANY CONFORMED NAME: TAYLOR DEVICES INC CENTRAL INDEX KEY: 0000096536 STANDARD INDUSTRIAL CLASSIFICATION: GENERAL INDUSTRIAL MACHINERY & EQUIPMENT, NEC [3569] IRS NUMBER: 160797789 STATE OF INCORPORATION: NY FISCAL YEAR END: 0531 FILING VALUES: FORM TYPE: 10-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-03498 FILM NUMBER: 211219207 BUSINESS ADDRESS: STREET 1: 90 TAYLOR DR CITY: NORTH TONAWANDA STATE: NY ZIP: 14120 BUSINESS PHONE: 7166940800 MAIL ADDRESS: STREET 1: 90 TAYLOR DR CITY: N TONAWANDA STATE: NY ZIP: 14120 10-K 1 tayd202110k.htm TAYD 10-K FY 2021
0000096536 false --05-31 2021 FY 05-31-2026 0000096536 2020-06-01 2021-05-31 0000096536 2020-11-30 0000096536 2021-08-27 0000096536 2021-05-31 0000096536 2020-05-31 0000096536 2019-06-01 2020-05-31 0000096536 us-gaap:CommonStockMember 2020-05-31 0000096536 us-gaap:CommonStockMember 2019-05-31 0000096536 us-gaap:CommonStockMember 2020-06-01 2021-05-31 0000096536 us-gaap:CommonStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:CommonStockMember 2021-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2020-06-01 2021-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-06-01 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2021-05-31 0000096536 us-gaap:RetainedEarningsMember 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-05-31 0000096536 us-gaap:RetainedEarningsMember 2020-06-01 2021-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-06-01 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2021-05-31 0000096536 us-gaap:TreasuryStockMember 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2019-05-31 0000096536 us-gaap:TreasuryStockMember 2020-06-01 2021-05-31 0000096536 us-gaap:TreasuryStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2021-05-31 0000096536 2019-05-31 0000096536 tayd:StructuralSeismicWindMember 2020-06-01 2021-05-31 0000096536 tayd:StructuralSeismicWindMember 2019-06-01 2020-05-31 0000096536 tayd:AerospaceDefenseMember 2020-06-01 2021-05-31 0000096536 tayd:AerospaceDefenseMember 2019-06-01 2020-05-31 0000096536 tayd:IndustrialMember 2020-06-01 2021-05-31 0000096536 tayd:IndustrialMember 2019-06-01 2020-05-31 0000096536 2021-06-01 2026-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember 2020-05-31 iso4217:USD xbrli:shares iso4217:USD xbrli:shares xbrli:pure

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

F O R M 10-K

 

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

 

For the fiscal year ended May 31, 2021

or

 

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

 

For the transition period from __________ to __________

 

Commission file number 0-3498

 

TAYLOR DEVICES INC

(Exact name of registrant as specified in its charter)

 

New York 16-0797789

(State or other jurisdiction of

incorporation or organization)

(I.R.S. Employer

Identification No.)

 

90 Taylor Drive, North Tonawanda, New York 14120
(Address of principal executive offices) (Zip Code)

 

Registrant's telephone number, including area code   (716) 694-0800

 

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

 

Title of each class

 

Trading Symbol

 

Name of each exchange on which registered

None None None

 

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

 

Common Stock ($.025 par value)

(Title of class)

 

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 for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.

Yes No

 

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

Yes No

 
 

 

 

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

 

Large accelerated filer Accelerated filer
Non-accelerated Filer Smaller reporting company
  Emerging growth company

 

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

 

Indicate by check mark whether the registrant has filed a report on and attestation to its management’s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.

 

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

 

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 on November 30, 2020 is $36,765,000.

 

The number of shares outstanding of each of the registrant's classes of common stock as of August 27, 2021: 3,496,765.

 

 

-2

TAYLOR DEVICES, INC.

 

DOCUMENTS INCORPORATED BY REFERENCE

 

Documents Form 10-K Reference
   
Proxy Statement Part III, Items 10-14
   

FORM 10-K INDEX

PART I     PAGE
  Item 1.

Business.

 

4
  Item 1A. Risk Factors. 6
  Item 1B. Unresolved Staff Comments. 6
  Item 2.

Properties.

 

6
  Item 3.

Legal Proceedings.

 

6
  Item 4. Mine Safety Disclosures. 6
PART II      
  Item 5.

Market For Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.

 

7
  Item 6. Selected Financial Data. 8
  Item 7.

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

 

8
  Item 7A. Quantitative and Qualitative Disclosures About Market Risk. 18
  Item 8.

Financial Statements and Supplementary Data.

 

18
  Item 9.

Changes in and Disagreements With Accountants on Accounting and Financial Disclosure.

 

18
  Item 9A.

Controls and Procedures.

 

18
  Item 9B. Other Information. 18
PART III      
  Item 10. Directors, Executive Officers and Corporate Governance. 18
  Item 11.

Executive Compensation.

 

18
  Item 12.

Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.

 

18
  Item 13.

Certain Relationships and Related Transactions, and Director Independence.

 

18
  Item 14. Principal Accounting Fees and Services. 18
PART IV      
  Item 15 Exhibits and Financial Statement Schedules 19
       
SIGNATURES   23

-3

 

PART I

 

Item 1. Business.

 

The Company was incorporated in the State of New York on July 22, 1955 and is engaged in the design, development, manufacture and marketing of shock absorption, rate control, and energy storage devices for use in various types of machinery, equipment and structures. In addition to manufacturing and selling existing product lines, the Company continues to develop new and advanced technology products.

 

Principal Products

 

The Company manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators. Management does not track or otherwise account for sales broken down by these categories. The following is a summary of the capabilities and applications for these products.

 

Seismic Dampers are designed to mitigate the effects of earthquake tremors on structures and represent a substantial part of the business of the Company. Fluidicshoks® are small, extremely compact shock absorbers with up to 19,200 inch-pound capacities, produced in 15 standard sizes for primary use in the defense, aerospace and commercial industry. Crane and industrial buffers are larger versions of the Fluidicshoks® with up to 60,000,000 inch-pound capacities, produced in more than 60 standard sizes for industrial application on cranes and crane trolleys, truck docks, ladle and ingot cars, ore trolleys and car stops. Self-adjusting shock absorbers, which include versions of Fluidicshoks® and crane and industrial buffers, automatically adjust to different impact conditions, and are designed for high cycle application primarily in heavy industry. Liquid die springs are used as component parts of machinery and equipment used in the manufacture of tools and dies. Vibration dampers are used primarily by the aerospace and defense industries to control the response of electronics and optical systems subjected to air, ship, or spacecraft vibration. Machined springs are precisely controlled mechanical springs manufactured from a variety of materials. These are used primarily for aerospace applications that require custom features that are not possible with conventional wound coil springs. Custom actuators are typically of the gas-charged type, using high pressure, that have custom features not available from other suppliers. These actuators are used for special aerospace and defense applications.

 

Distribution

 

The Company uses the services of several sales representatives and distributors in the United States and Canada along with more than 20 representatives and distributors throughout the rest of the world. Specialized technical sales in aerospace and custom marketing activities are serviced by several sales agents, under the direction and with the assistance of the Company's President. Sales representatives typically have non-exclusive, yearly agreements with the Company, which, in most instances, provide for payment of commissions on sales at 5% to 10% of the product's net aggregate selling price. Distributors also have non-exclusive, yearly agreements with the Company to purchase the Company's products for resale purposes.

 

Competition

 

The Company faces competition on mature aerospace and defense programs which may use more conventional products manufactured under less stringent government specifications. Two foreign companies are the Company's main competitors in the production of crane buffers.

 

The Company competes directly against two other firms supplying structural damping devices for use in the United States. For structural applications outside of the USA, the Company competes directly with several other firms particularly in Japan, China and Taiwan. The Company competes with numerous other firms that supply alternative seismic protection technologies.

 

Raw Materials and Supplies

 

The principal raw materials and supplies used by the Company in the manufacture of its products are provided by numerous U.S. and foreign suppliers. The loss of any one of these would not materially affect the Company's operations.

-4

 

 

Dependence Upon Major Customers

 

The Company is not dependent on any one or a few major customers. Sales to four customers approximated 33% (11%, 10%, 8%, and 4%, respectively) of net sales for 2021. The loss of any or all of these customers, unless the business is replaced by the Company, could result in an adverse effect on the results for the Company.

 

Patents, Trademarks and Licenses

 

The Company holds 6 patents expiring at different times until the year 2035.

 

Terms of Sale

 

The Company does not carry significant inventory for rapid delivery to customers, and goods are not normally sold with return rights such as are available for consignment sales. The Company had no inventory out on consignment and no consignment sales for the years ended May 31, 2021 and 2020. No extended payment terms are offered. During the year ended May 31, 2021, delivery time after receipt of orders averaged 8 to 10 weeks for the Company's standard products. Due to the volatility of structural and aerospace/defense programs, progress payments are usually required for larger projects using custom designed components of the Company.

 

Need for Government Approval of Principal Products or Services

 

Contracts between the Company and the federal government or its independent contractors are subject to termination at the election of the federal government. Contracts are generally entered into on a fixed price basis. If the federal government should limit defense spending, these contracts could be reduced or terminated, which management believes would have a materially adverse effect on the Company.

 

Research and Development

 

To accommodate growth and to maintain its presence in current markets, the Company engages in product research and development activities in connection with the design of its products.  Occasionally, research and development for products in the aerospace and defense sectors is funded by customers or the federal government.  The Company also engages in research testing of its products.  For the fiscal years ended May 31, 2021 and 2020, the Company expended $924,000 and $585,000, respectively, on product research.  This increase is primarily due to research and development that will aid in accommodating planned growth in multiple sectors.  For the years ended May 31, 2021 and 2020, defense sponsored research and development totaled $243,000 and $26,000, respectively.

 

Government Regulation

 

Compliance with federal, state and local laws and regulations which have been enacted or adopted regulating the discharge of materials into the environment has had no material effect on the Company, and the Company believes that it is in substantial compliance with such provisions.

 

The Company is subject to the Occupational Safety and Health Act ("OSHA") and the rules and regulations promulgated thereunder, which establish strict standards for the protection of employees, and impose fines for violations of such standards. The Company believes that it is in substantial compliance with OSHA provisions and does not anticipate any material corrective expenditures in the near future. The Company currently incurs only moderate costs with respect to disposal of hazardous waste and compliance with OSHA regulations.

 

The Company is also subject to regulations relating to production of products for the federal government. These regulations allow for frequent governmental audits of the Company's operations and fairly extensive testing of Company products. The Company believes that it is in substantial compliance with these regulations and does not anticipate corrective expenditures in the future.

 

Employees

 

Exclusive of Company sales representatives and distributors, as of May 31, 2021, the Company had 115 employees, including five executive officers. The Company has good relations with its employees.

-5

 

 

Item 1A. Risk Factors.

 

Smaller reporting companies are not required to provide the information required by this item.

 

Item 1B. Unresolved Staff Comments.

 

Not applicable.

 

Item 2. Properties.

 

The Company's production facilities occupy approximately six acres on Tonawanda Island in North Tonawanda, New York and are comprised of four interconnected buildings and two adjacent buildings. The production facilities consist of a small parts plant (approximately 4,400 square feet), a large parts plant (approximately 13,500 square feet), and include a facility of approximately 7,000 square feet comprised of a test facility, storage area, pump area and the Company's general offices. One adjacent building is a 27,000 square foot seismic assembly and test facility. This building contains overhead traveling cranes to allow dampers to be built up to 45 ft. in length. It is also the site of two long bed damper test machines where seismic dampers Taylor Devices manufactures will be tested at maximum force to satisfy customer specifications. Another adjacent building (approximately 2,000 square feet) is used as a training facility. These facilities total more than 54,000 square feet. Adjacent to these facilities, the Company has a remote test facility used for shock testing. This state-of-the-art test facility is 1,200 square feet. The Company owns two additional industrial buildings on nine acres of land in the City of North Tonawanda located 1.4 miles from the Company’s headquarters on Tonawanda Island. Total area of the two buildings is 46,000 square feet. One building includes a machine shop containing custom-built machinery for boring, deep-hole drilling and turning of parts. Another is used for painting and packaging parts and completed units.

 

The Company's real properties are subject to a negative pledge agreement with its lender, M&T Bank. The Company has agreed with the lender that, for so long as the credit facilities with the lender are outstanding, the Company will not sell, lease or mortgage any of its real properties. Additional information regarding the Company's agreement with M&T Bank is contained in Item 7, Management's Discussion and Analysis of Financial Condition and Results of Operations, at "Capital Resources, Line of Credit and Long-Term Debt."

 

The Company believes it carries adequate insurance coverage on its facilities and their contents.

 

Item 3. Legal Proceedings.

 

There are no legal proceedings at present.

 

Item 4. Mine Safety Disclosures.

 

Not applicable.

 

-6

 

PART II

 

Item 5. Market for Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases Of Equity Securities.

 

Market Information

 

The Company's Common Stock trades on the NASDAQ Capital Market of the National Association of Securities Dealers Automated Quotation ("NASDAQ") stock market under the symbol TAYD. The high and low sales information noted below for the quarters of fiscal year 2021 and fiscal year 2020 were obtained from NASDAQ.

 

 

   Fiscal 2021  Fiscal 2020
   High  Low  High  Low
First Quarter  $11.46   $8.68   $11.45   $10.54 
Second Quarter  $10.54   $8.58   $11.10   $10.11 
Third Quarter  $11.93   $9.76   $13.39   $10.10 
Fourth Quarter  $12.43   $10.58   $11.57   $6.61 

 

Holders

 

As of August 27, 2021, the number of issued and outstanding shares of Common Stock was 3,496,765 and the approximate number of record holders of the Company's Common Stock was 456. Due to a substantial number of shares of the Company's Common Stock held in street name, the Company believes that the total number of beneficial owners of its Common Stock is less than 1,300.

 

Dividends

 

No cash or stock dividends have been declared during the last two fiscal years. The Company plans to retain cash in the foreseeable future to fund working capital needs.

 

Rights Plan

 

As of September 25, 2018, the Company's Board of Directors adopted a shareholder rights plan designed to deter coercive or unfair takeover tactics and prevent an acquirer from gaining control of the Company without offering a fair price to shareholders. Under the plan, certain rights ("Rights") were distributed as a dividend on each share of Common Stock (one Right for each share of Common Stock) held as of the close of business on October 2, 2018. Each whole Right entitles the holder, under certain defined conditions, to buy one two-thousandths (1/2000) of a newly issued share of the Company's Series A Junior Participating Preferred Stock ("Series A Preferred Stock") at a purchase price of $5.00 per unit of one two-thousandths of a share. Rights attach to and trade with the shares of Common Stock, without being evidenced by a separate certificate. No separate Rights certificates will be issued unless and until the Rights detach from Common Stock and become exercisable for shares of the Series A Preferred Stock.

 

The Rights become exercisable to purchase shares of Preferred Stock (or, in certain circumstances, Common Stock) only if (i) a person acquired 15% or more of the Company's Common Stock, or (ii) a person commenced a tender or exchange offer for 10% or more of the Company's Common Stock, or (iii) the Board of Directors determined that the beneficial owner of at least 10% of the Company's Common Stock intended to cause the Company to take certain actions adverse to it and its shareholders or that such ownership would have a material adverse effect on the Company. The Rights Plan will expire on October 5, 2028.

 

Issuer Purchases of Equity Securities

 

A share repurchase agreement with a major broker-dealer, under which the Company repurchased shares of its common stock on the open market, has been terminated by the Company. No shares have been purchased since August 2011.

 

 

-7

 

Equity Compensation Plan Information

 

The following table sets forth information regarding equity compensation plans of the Company as of May 31, 2021.

 

    Equity Compensation Plan Information

 

 

 

 

 

 

Plan Category

 

 

 

 

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

(a)

 

 

 

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

(b)

 

 

Number of securities remaining available

for future issuance under equity compensation plans (excluding securities reflected in column (a))

(c)

Equity compensation plans approved by security holders:

 

           

2008 Stock Option Plan

2012 Stock Option Plan

2015 Stock Option Plan

2018 Stock Option Plan

 

 

19,750

67,000

105,750

75,250

 

$ 9.61

$11.57

$12.61

$10.73

 

-

-

-

84,000

Equity compensation plans not approved by security holders:  

 

 

 

       
2004 Employee Stock Purchase Plan    (1)  

 

-

 

 

-

 

 

218,783

Total

 

  267,750       302,783
             
(1) The Company's 2004 Employee Stock Purchase Plan (the "Employee Plan") permits eligible employees to purchase shares of the Company's common stock at fair market value through payroll deductions and without brokers' fees.  Such purchases are without any contribution on the part of the Company.  As of May 31, 2021, 218,783 shares were available for issuance.  
               

 

Item 6. Selected Financial Data.

 

The Company qualifies as a smaller reporting company, as defined by 17 CFR §229.10(f)(1), and is not required to provide the information required by this Item.

 

Item 7. Management's Discussion and Analysis of Financial Condition and Results of Operations.

 

Cautionary Statement

 

The Private Securities Litigation Reform Act of 1995 provides a "safe harbor" for forward-looking statements. Information in this Item 7, "Management's Discussion and Analysis of Financial Condition and Results of Operations" and elsewhere in this 10-K that does not consist of historical facts are "forward-looking statements." Statements accompanied or qualified by, or containing, words such as "may," "will," "should," "believes," "expects," "intends," "plans," "projects," "estimates," "predicts," "potential," "outlook," "forecast," "anticipates," "presume," "assume" and "optimistic" constitute forward-looking statements and, as such, are not a guarantee of future performance. The statements involve factors, risks and uncertainties, the impact or occurrence of which can cause actual results to differ materially from the expected results described in such statements. Risks and uncertainties can include, among others, fluctuations in general business cycles and changing economic conditions; variations in timing and amount of customer orders; changing product demand and industry capacity; increased competition and pricing pressures; advances in technology that can reduce the demand for the Company's products, as well as other factors, many or all of which may be beyond the Company's control. Consequently, investors should not place undue reliance on forward-looking statements as predictive of future results. The Company disclaims any obligation to release publicly any updates or revisions to the forward-looking statements herein to reflect any change in the Company's expectations with regard thereto, or any changes in events, conditions or circumstances on which any such statement is based.

-8

 

Application of Critical Accounting Policies and Estimates

 

The Company's consolidated financial statements and accompanying notes are prepared in accordance with U.S. generally accepted accounting principles. The preparation of the Company's financial statements requires management to make estimates, assumptions and judgments that affect the amounts reported. These estimates, assumptions and judgments are affected by management's application of accounting policies, which are discussed in Note 1, "Summary of Significant Accounting Policies", and elsewhere in the accompanying consolidated financial statements. As discussed below, our financial position or results of operations may be materially affected when reported under different conditions or when using different assumptions in the application of such policies. In the event estimates or assumptions prove to be different from actual amounts, adjustments are made in subsequent periods to reflect more current information. Management believes the following critical accounting policies affect the more significant judgments and estimates used in the preparation of the Company's financial statements.

 

Accounts Receivable

 

Our ability to collect outstanding receivables from our customers is critical to our operating performance and cash flows. Accounts receivable are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts after considering the age of each receivable and communications with the customers involved. Balances that are collected, for which a credit to a valuation allowance had previously been recorded, result in a current-period reversal of the earlier transaction charging earnings and crediting a valuation allowance. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to accounts receivable in the current period. The actual amount of accounts written off over the five year period ended May 31, 2021 equaled less than 0.3% of sales for that period. The balance of the valuation allowance has decreased to $7,000 at May 31, 2021 from $211,000 at May 31, 2020. Management does not expect the valuation allowance to materially change in the next twelve months for the current accounts receivable balance.

 

Inventory

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

 

Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.

 

This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence. Based on certain assumptions and judgments made from the information available at that time, we determine the amount in the inventory allowance. If these estimates and related assumptions or the market changes, we may be required to record additional reserves. Historically, actual results have not varied materially from the Company's estimates.

 

During fiscal 2021, the Company began a thorough review of the facilities including the flow of inventory through the factory and warehouse areas to determine the most efficient utilization of available space. Inventory purchasing practices and stocking levels were also evaluated and it was determined that a significant portion of the older items would be disposed of while the allowance for potential inventory obsolescence would be increased as more items are identified for disposal. $1,101,000 of inventory was disposed of during the year. The provision for potential inventory obsolescence was $1,500,000 and $180,000 for the years ended May 31, 2021 and 2020.

 

Revenue Recognition

 

Revenue is recognized when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

-9

 

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. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Total estimated costs for each of the contracts are estimated based on a combination of historical costs of manufacturing similar products and estimates or quotes from vendors for supplying parts or services towards the completion of the manufacturing process. Adjustments to cost and profit estimates are made periodically due to changes in job performance, job conditions and estimated profitability, including those arising from final contract settlements. These changes may result in revisions to costs and income and are recognized in the period in which the revisions are determined. Any losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. If total costs calculated upon completion of the manufacturing process in the current period for a contract are more than the estimated total costs at completion used to calculate revenue in a prior period, then the profits in the current period will be lower than if the estimated costs used in the prior period calculation were equal to the actual total costs upon completion. Historically, actual results have not varied materially from the Company's estimates. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2021, 43% of revenue was recorded for contracts in which revenue was recognized over time while 57% was recognized at a point in time. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time.

For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, "costs and estimated earnings in excess of billings," represents revenues recognized in excess of amounts billed. The liability, "billings in excess of costs and estimated earnings," represents billings in excess of revenues recognized.

 

Income Taxes

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. The deferred tax assets relate principally to asset valuation allowances such as inventory obsolescence reserves and bad debt reserves and also to liabilities including warranty reserves, accrued vacation, accrued commissions and others. The deferred tax liabilities relate primarily to differences between financial statement and tax depreciation. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. In future years the Company will need to generate approximately $3.9 million of taxable income in order to realize our deferred tax assets recorded as of May 31, 2021 of $815,000. This deferred tax asset balance is 2% ($15,000) less than at the end of the prior year. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. If actual results differ from estimated results or if the Company adjusts these assumptions, the Company may need to adjust its deferred tax assets or liabilities, which could impact its effective tax rate.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses.

 

The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2021, the Company had State investment tax credit carryforwards of approximately $368,000 expiring through May 2026.

-10

 

Results of Operations

 

A summary of the period to period changes in the principal items included in the consolidated statements of income is shown below:

 

Summary comparison of the years ended May 31, 2021 and 2020
   Increase /
   (Decrease)
Sales, net  $(5,872,000)
Cost of goods sold  $190,000 
Selling, general and administrative expenses  $(407,000)
Income before provision for income taxes  $(2,734,000)
Provision for income taxes  $(767,000)
Net income  $(1,967,000)

 

For the year ended May 31, 2021 (All figures being discussed are for the year ended May 31, 2021 as compared to the year ended May 31, 2020.)

   Year ended May 31  Change
   2021  2020  Amount  Percent
Net Revenue  $22,510,000   $28,382,000   $(5,872,000)   -21%
Cost of sales   19,335,000    19,145,000    190,000    1%
Gross profit  $3,175,000   $9,237,000   $(6,062,000)   -66%
… as a percentage of net revenues   14%   33%          
                     

 

The Company's consolidated results of operations showed a 21% decrease in net revenues and a decrease in net income of 65%. Revenues recorded in the current period for long-term construction projects (“Project(s)”) were 41% lower than the level recorded in the prior year. We had 41 Projects in process during the current period compared with 41 during the same period last year. Revenues recorded in the current period for other-than long-term construction projects (non-projects) were 7% more than the level recorded in the prior year. The number of Projects in-process fluctuates from period to period. The changes from the prior period to the current period are not necessarily representative of future results.

 

Sales of the Company's products are made to three general groups of customers: industrial, structural and aerospace / defense. The Company saw a 35% decrease from last year’s level in sales to structural customers who were seeking seismic / wind protection for either construction of new buildings and bridges or retrofitting existing buildings and bridges along with a 5% decrease in sales to customers in aerospace / defense offset by a 10% increase in sales to customers using our products in industrial applications. The significant decrease in sales to structural customers is primarily from domestic customers. Many prospective customers in the construction field had been delaying orders for several months as they considered the potential effects of the current COVID pandemic on the economy. Slightly more than half of the sales order bookings to structural customers were recorded in the final four months of the fiscal year, including $6.4 million in the fourth quarter. All of these will be deliverable in fiscal 2022.

 

A breakdown of sales to these three general groups of customers, as a percentage of total net revenue for fiscal years ended May 31, 2021 and 2020 is as follows:

 

   Year ended May 31
   2021  2020
Industrial   10%   7%
Structural   45%   55%
Aerospace / Defense   45%   38%

 

-11

 

Total sales within North America decreased 34% from last year. Total sales to Asia increased 52% from the prior year. Net revenue by geographic region, as a percentage of total net revenue for fiscal years ended May 31, 2021 and 2020 is as follows:

 

   Year ended May 31
   2021  2020
North America   70%   85%
Asia   20%   11%
Other   10%   4%

 

The gross profit as a percentage of net revenue of 14% in the current period is less than the 33% recorded in the same period of the prior year. The significant decrease in gross profit as a percentage of revenue is primarily due to the significant reduction in domestic sales to structural customers along with the 58% increase in research and development costs incurred as discussed above.

 

At May 31, 2020, we had 102 open sales orders in our backlog with a total sales value of $9.8 million. At May 31, 2021, we had 132 open sales orders in our backlog with a total sales value of $22.0 million. $9.3 million of the current backlog is on Projects already in progress. $2.2 million of the $9.8 million sales order backlog at May 31, 2020 was in progress at that date. 43% of the sales value in the backlog is for aerospace / defense customers compared to 63% at the end of fiscal 2020. As a percentage of the total sales order backlog, orders from structural customers accounted for 55% at May 31, 2021 and 32% at May 31, 2020.

 

The Company's backlog, revenues, commission expense, gross margins, gross profits, and net income fluctuate from period to period. Total sales in the current period and the changes in the current period compared to the prior period, are not necessarily representative of future results.

 

Selling, General and Administrative Expenses

 

   Year ended May 31  Change
   2021  2020  Amount  Percent
Outside Commissions  $719,000   $1,081,000   $(362,000)   -33%
Other SG&A   4,808,000    4,853,000    (45,000)   -1%
Total SG&A  $5,527,000   $5,934,000   $(407,000)   -7%
… as a percentage of net revenues   25%   21%          
                     

 

Selling, general and administrative expenses decreased slightly from the prior year. Outside commission expense decreased 33% from last year's level due to the significant decrease in the level of commissionable sales recorded in the current period as compared to the prior period. Other selling, general and administrative expenses decreased only slightly from last year.

 

The above factors resulted in operating loss of $2,352,000 for the year ended May 31, 2021, down significantly from the $3,303,000 operating income in the prior year.

 

Other income during the period includes $2,972,000 of financial assistance provided by the U.S. federal government as part of the Coronavirus Aid, Relief and Economic Security (CARES) Act and the Consolidated Appropriations Act of 2021 (CAA), discussed below: a.) $1,462,000 of income due to the forgiveness of the loan by the Small Business Administration (SBA) under the Paycheck Protection Program (PPP), and b.) $1,510,000 of Employee Retention Credit income.

 

The Company's effective tax rate (ETR) is calculated based upon current assumptions relating to the year's operating results and various tax related items. The ETR for the fiscal year ended May 31, 2021 is -56%, compared to the ETR for the prior year of 11%.

-12

 

 

A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:

 

   2021  2020
Computed tax provision at the expected statutory rate  $143,000   $718,000 
Tax effect of permanent differences:          
Research tax credits   (218,000)   (272,000)
Foreign-derived intangible income deduction   —      (100,000)
U.S. Government PPP loan forgiven   (307,000)   —   
Other permanent differences   42,000    40,000 
Other   (41,000)   —   
   $(381,000)  $386,000 
           

 

The foreign-derived intangible income deduction is a tax deduction provided to corporations that sell goods or services to foreign customers. It became available through Public Law 115-97, known as the Tax Cuts and Jobs Act. The legislation that created the PPP and permitted the SBA to forgive loans made through the PPP also directed that the forgiven loan would not be taxable income to the recipient.

 

Stock Options

 

The Company has stock option plans which provide for the granting of nonqualified or incentive stock options to officers, key employees and non-employee directors. Options granted under the plans are exercisable over a ten year term. Options not exercised by the end of the term expire.

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The Company recognized $154,000 and $143,000 of compensation cost for the years ended May 31, 2021 and 2020.

 

The fair value of each stock option grant has been determined using the Black-Scholes model. The model considers assumptions related to exercise price, expected volatility, risk-free interest rate, and the weighted average expected term of the stock option grants. The Company used a weighted average expected term. Expected volatility assumptions used in the model were based on volatility of the Company's stock price for the thirty-month period immediately preceding the granting of the options. The Company issued stock options in August 2020 and April 2021. The risk-free interest rate is derived from the U.S. treasury yield.

 

The following assumptions were used in the Black-Scholes model in estimating the fair market value of the Company's stock option grants:

   August 2020  April 2021
Risk-free interest rate:   1.750%   2.625%
Expected life of the options:   3.9 years    4.0 years 
Expected share price volatility:   34%   32%
Expected dividends:   zero    zero 
These assumptions resulted in estimated fair-market value per stock option:  $2.88   $3.49 

 

 

-13

 

The ultimate value of the options will depend on the future price of the Company's common stock, which cannot be forecast with reasonable accuracy. A summary of changes in the stock options outstanding during the year ended May 31, 2021 is presented below.

      Weighted-
   Number of  Average
   Options  Exercise Price
Options outstanding and exercisable at May 31, 2020:   252,250   $11.52 
Options granted:   47,250   $11.26 
Less: Options exercised:   13,000   $6.34 
Less: Options expired:   18,750   $13.31 
Options outstanding and exercisable at May 31, 2021:   267,750   $11.60 
Closing value per share on NASDAQ at May 31, 2021:       $11.85 

 

 

Capital Resources, Line of Credit and Long-Term Debt

 

The Company's primary liquidity is dependent upon its working capital needs. These are primarily inventory, accounts receivable, costs and estimated earnings in excess of billings, accounts payable, accrued commissions, billings in excess of costs and estimated earnings, and debt service. The Company's primary sources of liquidity have been operations and bank financing.

 

Capital expenditures for the year ended May 31, 2021 were $1,622,000 compared to $1,231,000 in the prior year. Current year capital expenditures included new manufacturing machinery, testing equipment, paint booths system, upgrades to technology equipment and assembly / test facility improvements. The Company has commitments to make capital expenditures of approximately $400,000 as of May 31, 2021.

 

During fiscal 2020, the Company received a loan totaling $1,462,000 from the SBA under the Paycheck Protection Program of the CARES Act, in response to the Coronavirus pandemic described below. The total amount of the loan was forgiven during fiscal 2021 under provisions of the CARES Act.

 

The Company has a $10,000,000 demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. There is no outstanding balance at May 31, 2021 or May 31, 2020. The outstanding balance on the line of credit fluctuates as the Company's various long-term projects progress. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and is subject to renewal annually.

 

The bank is not committed to make loans under this line of credit and no commitment fee is charged.

 

 

Inventory and Maintenance Inventory

   May 31, 2021  May 31, 2020  Increase /(Decrease)
Raw materials  $503,000        $658,000        $(155,000)   -24%
Work in process   5,076,000         8,586,000         (3,510,000)   -41%
Finished goods   256,000         863,000         (607,000)   -70%
Inventory   5,835,000    78%   10,107,000    92%   (4,272,000)   -42%
Maintenance and other inventory   1,613,000    22%   879,000    8%   734,000    84%
Total  $7,448,000    100%  $10,986,000    100%  $(3,538,000)   -32%
                               
Inventory turnover   2.1         1.7                

 

Inventory, at $5,835,000 as of May 31, 2021, is 42% less than the prior year-end. Of this, approximately 87% is work in process, 4% is finished goods, and 9% is raw materials. All of the current inventory is expected to be consumed or sold within twelve months. The level of inventory will fluctuate from time to time due to the stage of completion of the non-project sales orders in progress at the time.

-14

 

 

The Company continues to rework slow-moving inventory, where applicable, to convert it to product to be used on customer orders. During fiscal 2021, the Company began a thorough review of the inventory to identify and dispose of items that had not been used for several years and were unlikely to be used in the foreseeable future. The Company disposed of approximately $1,101,000 and $46,000 of obsolete inventory during the years ended May 31, 2021 and 2020, respectively.

 

Accounts Receivable, Costs and Estimated Earnings in Excess of Billings (“CIEB”) and Billings in Excess of Costs and Estimated Earnings (“BIEC”)

 

   May 31, 2021  May 31, 2020  Increase /(Decrease)
Accounts and other receivables  $4,121,000   $5,819,000   $(1,698,000)   -29%
Less: Other receivable   741,000    —      741,000      
Accounts receivable   3,380,000    5,819,000    (2,439,000)   -42%
CIEB   1,500,000    1,755,000    (255,000)   -15%
Less: BIEC   1,362,000    737,000    625,000    85%
Net  $3,518,000   $6,837,000   $(3,319,000)   -49%
                     
Number of an average day’s sales outstanding in accounts receivable (DSO)   42    68           

 

The Company combines the totals of accounts receivable, the asset CIEB, and the liability BIEC, to determine how much cash the Company will eventually realize from revenue recorded to date. As the accounts receivable figure rises in relation to the other two figures, the Company can anticipate increased cash receipts within the ensuing 30-60 days.

 

Accounts receivable of $3,380,000 as of May 31, 2021 includes approximately $201,000 of amounts retained by customers on long-term construction projects. The Company expects to collect all of these amounts, including the retained amounts, during the next twelve months. The number of an average day's sales outstanding in accounts receivable (DSO) decreased to 42 days at May 31, 2021 from 68 days as of May 31, 2020. The DSO is a function of 1.) the level of sales for an average day (for example, total sales for the past three months divided by 90 days) and 2.) the level of accounts receivable at the balance sheet date. The level of sales for an average day in the fourth quarter of the current fiscal year is only 6% less than in the fourth quarter of the prior year. The level of accounts receivable at the end of the current fiscal year is 42% less than the level at the end of the prior year. The level of accounts receivable at the end of the current year is significantly less that last year due to 1.) the collection in the current year of amounts owed on some larger Projects that had been completed in the prior year and 2.) the lower level of sales in the current year. The combination of the decrease in the level of an average day’s sales along with the decrease in the level of accounts receivable caused the DSO to decrease by 26 days from last year-end to this year-end. The Company expects to collect the net accounts receivable balance, including the retainage, during the next twelve months.

 

Other receivable is an amount of Employee Retention Credit claimed by the Company for the second calendar quarter of 2021 and is expected to be received in the third calendar quarter of 2021.

 

The status of the projects in-progress at the end of the current and prior fiscal years have changed in the factors affecting the year-end balances in the asset CIEB, and the liability BIEC:

 

   2021  2020
Number of projects in progress at year-end   14    15 
Aggregate percent complete at year-end   32%   80%
Average total value of projects in progress at year-end  $963,000   $830,000 
Percentage of total value invoiced to customer   30%   74%

 

There is one fewer project in-process at the end of the current fiscal year as compared with the prior year end and the average value of those projects has increased by 16% between those two dates.

-15

 

 

As noted above, CIEB represents revenues recognized in excess of amounts billed. Whenever possible, the Company negotiates a provision in sales contracts to allow the Company to bill, and collect from the customer, payments in advance of shipments. Unfortunately, provisions such as this are often not possible. The $1,500,000 balance in this account at May 31, 2021 is a 15% decrease from the prior year-end. This decrease reflects the lower aggregate level of the percentage of completion of these Projects as of the current year end as compared with the Projects in process at the prior year end. Generally, if progress billings are permitted under the terms of a project sales agreement, then the more complete the project is, the more progress billings will be permitted. The Company expects to bill the entire amount during the next twelve months. 42% of the CIEB balance as of the end of the last fiscal quarter, February 28, 2021, was billed to those customers in the current fiscal quarter ended May 31, 2021. The remainder will be billed as the projects progress, in accordance with the terms specified in the various contracts.

 

 

The year-end balances in the CIEB account are comprised of the following components:

 

   May 31, 2021  May 31, 2020
Costs  $2,362,000   $2,615,000 
Estimated earnings   410,000    540,000 
Less: Billings to customers   1,272,000    1,400,000 
CIEB  $1,500,000   $1,755,000 
Number of projects in progress   9    10 

 

As noted above, BIEC represents billings to customers in excess of revenues recognized. The $1,362,000 balance in this account at May 31, 2021 is in comparison to a $737,000 balance at the end of the prior year. The balance in this account fluctuates in the same manner and for the same reasons as the account "costs and estimated earnings in excess of billings," discussed above. Final delivery of product under these contracts is expected to occur during the next twelve months.

 

The year-end balances in this account are comprised of the following components:

 

   May 31, 2021  May 31, 2020
Billings to customers  $2,741,000   $7,794,000 
Less:  Costs   1,011,000    3,781,000 
Less: Estimated earnings   368,000    3,276,000 
BIEC  $1,362,000   $737,000 
Number of projects in progress   5    5 

 

 

Accounts payable, at $1,787,000 as of May 31, 2021, is 30% more than the prior year-end. This significant increase is due to the increase in customer orders received during the final months of the current fiscal year that will be manufactured and shipped to the customers in the coming months. The Company expects the current accounts payable amount to be paid during the next twelve months.

 

Commission expense on applicable sales orders is recognized at the time revenue is recognized. The commission is paid following receipt of payment from the customers. Accrued commissions as of May 31, 2021 are $269,000. This is 12% less than the $306,000 accrued at the prior year-end. This decrease is generally due to the decrease in the level of sales, discussed above. The Company expects the current accrued amount to be paid during the next twelve months.

 

Other accrued expenses of $1,715,000 increased slightly from the prior year level of $1,664,000.

 

Management believes that the Company's cash on hand, cash flows from operations, and borrowing capacity under the bank line of credit will be sufficient to fund ongoing operations, capital improvements and share repurchases (if any) for the next twelve months.

 

-16

 

Coronavirus Pandemic

 

On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also fluctuated significantly during this time. The extent of the impact of COVID-19 on the Company’s operational and financial performance was significant in fiscal 2021. While the use of vaccinations world-wide have apparently slowed spread of the disease, the extent of the impact of COVID-19 on the Company’s operational and financial performance in fiscal 2022 will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.

 

Company management currently does not have reason to believe that the COVID-19 pandemic will adversely affect our ability to meet our obligations to our customers. Our top priorities continue to be the health and safety of our employees and their families along with supporting our customers.  Thanks to the careful adherence to our COVID-19 safety measures by our workforce as well as our customers and suppliers, we remain in a strong position with respect to being able to process existing orders and we are quite prepared to process new orders as they are secured.  Our high-spirited, healthy workforce continues to adjust their work schedules as the needs arise.

 

The majority of our customers remain open to continue to receive shipments from us and issue new purchase orders to us. Many of our domestic structural customers froze operations while they attempted to determine the extent and impact of the pandemic on their projects. We noticed a thawing in this domestic market during the final four months of the fiscal year as customers appeared to gain confidence in the future of our economy. This has resulted in an increase in the volume of domestic sales orders. While these new orders had very little impact on the 2021 fiscal year, they have provided a strong base for the next fiscal year.

 

The liquidity of the Company remains strong at this time. However, the pandemic is not over and the economy has not fully recovered yet. Management remains concerned about variants of the virus as well as the uncertainty of the when or how the virus may affect some of our customers’ purchasing plans. The economic downturn did have a negative impact on our operations and for this reason, we have applied for and have received assistance from the federal government under various provisions of the CARES Act and CAA, as discussed above.

 

Our Supply Chain Management team is in communication with our partners around the globe so that we can be updated on any delays that may occur. Increases in global demand for materials such as steel have caused sharp cost increases as the various economies improve around the world. We have faced longer lead times to procure some materials. Management is monitoring this situation and adjusting our sourcing as necessary.

 

 

-17

 

Item 7A. Quantitative and Qualitative Disclosures About Market Risk.

 

Smaller reporting companies are not required to provide the information required by this item.

 

Item 8. Financial Statements and Supplementary Data.

 

The financial statements and supplementary data required pursuant to this Item 8 are included in this Form 10-K as a separate section commencing on page 25 and are incorporated herein by reference.

 

Item 9. Changes in and Disagreements With Accountants on Accounting and Financial Disclosure.

 

There have been no disagreements between the Company and its accountants as to matters which require disclosure.

 

Item 9A. Controls and Procedures.

 

(a)        Evaluation of disclosure controls and procedures.

 

The Company's principal executive officer and principal financial officer have evaluated the Company's disclosure controls and procedures as of May 31, 2021 and have concluded that, as of the evaluation date, the disclosure controls and procedures were effective to ensure that information required to be disclosed in the reports that the Company files or submits under the Exchange Act is recorded, processed, summarized and reported, within the time periods specified in the Commission's rules and forms and that information required to be disclosed in the reports the Company files or submits under the Exchange Act is accumulated and communicated to our management, including our chief executive officer and chief financial officer, to allow timely decisions regarding required disclosure.

 

(b)       Management's report on internal control over financial reporting.

 

The Company's management, with the participation of the Company's principal executive officer and principal financial officer, is responsible for establishing and maintaining adequate internal control over financial reporting. The Company's management has assessed the effectiveness of the Company's internal control over financial reporting as of May 31, 2021. In making this assessment, management used the criteria set forth by the Committee of Sponsoring Organizations of the Treadway Commission (COSO) in Internal Control -- Integrated Framework, updated in 2013. Based on this assessment management has concluded that, as of May 31, 2021, the Company's internal control over financial reporting is effective based on those criteria.

 

(c) Changes in internal control over financial reporting.

 

There have been no changes in the Company's internal controls over financial reporting that occurred during the fiscal year ended May 31, 2021 that have materially affected, or are reasonably likely to materially affect, the Company's control over financial reporting.

 

 

Item 9B. Other Information.

 

None.

 

PART III

 

The information required by Items 10, 11, 12, 13 and 14 of this part will be presented in the Company's Proxy Statement to be issued in connection with the Annual Meeting of Shareholders to be held on October 22, 2021, which information is hereby incorporated by reference into this Annual Report. The proxy materials, including the Proxy Statement and form of proxy, will be filed within 120 days after the Company's fiscal year end.

 

 

-18

 

PART IV

 

Item 15. Exhibits and Financial Statement Schedules.

 

DOCUMENTS FILED AS PART OF THIS REPORT:
 

Index to Financial Statements:

 

    (i)

Report of Independent Registered Public Accounting Firm

 

    (ii)

Consolidated Balance Sheets as of May 31, 2021 and 2020

 

    (iii) Consolidated Statements of Income for the years ended May 31, 2021 and 2020
    (iv)

Consolidated Statements of Stockholders' Equity for the years ended May 31, 2021 and 2020

 

    (v)

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

 

    (vi) Notes to Consolidated Financial Statements - May 31, 2021 and 2020
EXHIBITS:
  3

Articles of incorporation and by-laws

 

    (i)

Restated Certificate of Incorporation incorporated by reference to Exhibit (3)(i) of Annual Report on Form 10-K, dated August 24, 1983.

 

    (ii)

Amendment to Certificate of Incorporation incorporated by reference to Exhibit (3)(iv) to Form 8 [Amendment to Application or Report], dated September 24, 1993.

 

    (iii)

Amendment to Certificate of Incorporation eliminating and re-designating the Series A Junior Preferred Stock and creating 5,000 Series 2008 Junior Participating Preferred Stock, at $.05 par value, as filed by the Secretary of State of the State of New York on September 16, 2008, and incorporated by reference to Exhibit (3)(i) of Form 8-K, dated as of September 15, 2008 and filed September 18, 2008.

 

    (iv)

Certificate of Change incorporated by reference to Exhibit (3)(i) to Quarterly Report on Form 10-QSB for the period ending November 30, 2002.

 

    (v)

By-laws and Proxy Review Guidelines incorporated by reference to Exhibit (3) to Quarterly Report on Form 10-Q for the period ending February 28, 2015, filed April 14, 2015.

 

  4

Instruments defining rights of security holders, including indentures

 

    (i)

Rights Agreement by and between registrant and Computershare Trust Company, N.A., dated as of September 25, 2018 and letter to shareholders (including Summary of Rights), dated October 5, 2018, attached as Exhibits 4 and 20, respectively, to Registration Statement on Form 8-A 12G, filed with the Securities and Exchange Commission on October 5, 2018.

 

    (ii) Description of registrant’s securities incorporated by reference to Exhibit 4(vi) to Annual Report on Form 10-K for the fiscal year ended May 31, 2019, filed August 2, 2019.
           

-19

 

 

 

10

Material Contracts

 

    (i)

2005 Taylor Devices, Inc. Stock Option Plan attached as Appendix B to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 27, 2005.

 

    (ii)

2008 Taylor Devices, Inc. Stock Option Plan attached as Appendix C to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 26, 2008.

 

    (iii)

2012 Taylor Devices, Inc. Stock Option Plan attached as Appendix C to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 21, 2012.

 

    (iv)

2015 Taylor Devices, Inc. Stock Option Plan attached as Appendix B to Definitive Proxy Statement, filed with the Securities and Exchange Commission on April 8, 2016.

 

    (v)

2018 Taylor Devices, Inc. Stock Option Plan attached as Appendix B to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 27, 2018.

 

    (vi)

The 2004 Taylor Devices, Inc. Employee Stock Purchase Plan, incorporated by reference to Exhibit 4.1 to Registration Statement on Form S-8, File No. 333-114085, filed with the Securities and Exchange Commission on March 31, 2004.

 

    (vii)

Post-Effective Amendment No. 1 to Registration Statement on Form S-8, File No. 333-114085, for the 2004 Taylor Devices, Inc. Employee Stock Purchase Plan, filed with the Securities and Exchange Commission on August 24, 2006.

 

    (viii)

Form of Indemnification Agreement between registrant and directors and executive officers, attached as Appendix A to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 27, 2007.

 

    (ix)

Management Bonus Policy dated as of March 4, 2011 between the Registrant and executive officers, incorporated by reference to Exhibit 10(i) to Quarterly Report on Form 10-Q for the period ending February 28, 2011.

 

    (x)

Negative Pledge Agreement dated August 30, 2017 by the Registrant in favor of M&T Bank, filed with this report.

 

    (xi)

Employment Agreement dated as of June 14, 2018 between the Registrant and Alan R. Klembczyk, incorporated by reference to Exhibit 10(i) to Current Report on Form 8-K filed June 19, 2018.

 

    (xii)

Employment Agreement dated as of June 14, 2018 between the Registrant and Mark V. McDonough, incorporated by reference to Exhibit 10(ii) to Current Report on Form 8-K filed June 19, 2018.

 

    (xiii)

Employment Agreement dated as of August 9, 2021 between the Registrant and Timothy J. Sopko, incorporated by reference to Exhibit 10 to Current Report on Form 8-K filed August 13, 2021.

 

-20

 

  11 Statement regarding computation of per share earnings
     
    REG. 228.601(A)(11)  Statement regarding computation of per share earnings
     
    Weighted average of common stock/equivalents outstanding - fiscal year ended May 31, 2021
       
      Weighted average common stock outstanding  3,490,213
      Common shares issuable under stock option plans using treasury stock method       1,674
      Weighted average common stock outstanding assuming dilution  3,491,887
       
      Net income fiscal year ended May 31, 2021 (1) $ 1,062,895
      Weighted average common stock (2) 3,490,213  
      Basic income per common share        (1) divided by (2) $      0.30
       
      Net income fiscal year ended May 31, 2021 (3) $ 1,062,895
      Weighted average common stock outstanding assuming dilution (4) 3,491,887    
      Diluted income per common share     (3) divided by (4) $   0.30
     
    Weighted average of common stock/equivalents outstanding - fiscal year ended May 31, 2020
       
      Weighted average common stock outstanding  3,481,128
      Common shares issuable under stock option plans using treasury stock method       8,663
      Weighted average common stock outstanding assuming dilution  3,489,791
       
      Net income fiscal year ended May 31, 2020 (1) $ 3,029,976
      Weighted average common stock (2) 3,481,128  
      Basic income per common share        (1) divided by (2) $   0.87
       
      Net income fiscal year ended May 31, 2020 (3) $ 3,029,976
      Weighted average common stock outstanding assuming dilution (4) 3,489,791    
      Diluted income per common share     (3) divided by (4) $   0.87
       
  13 The Annual Report to Security Holders for the fiscal year ended May 31, 2021, attached to this Annual Report on Form 10-K.
       
  21 Subsidiaries of the registrant
    Tayco Realty Corporation is a New York corporation organized on September 8, 1977, owned by the Company.
  23 The Consent of Independent Registered Public Accounting Firm precedes the Consolidated Financial Statements.
  31 Officer Certifications
    (i) Rule 13a-14(a) Certification of Chief Executive Officer.
    (ii) Rule 13a-14(a) Certification of Chief Financial Officer.
                 

-21

 

  32 Officer Certifications
    (i) Section 1350 Certification of Chief Executive Officer.
    (ii) Section 1350 Certification of Chief Financial Officer.
  101 Interactive data files pursuant to Rule 405 of Regulation S-T:  (i) Consolidated Balance Sheets, (ii) Consolidated Statements of Income, (iii) Consolidated Statements of Stockholders’ Equity, (iv) Consolidated Statements of Cash Flows, and (v) Notes to Consolidated Financial Statements.
    101.SCH XBRL Taxonomy Extension Schema Document
    101.CAL XBRL Taxonomy Extension Calculation Linkbase Document
    101.DEF XBRL Taxonomy Extension Definition Linkbase Document
    101.LAB XBRL Taxonomy Extension Label Linkbase Document
    101.PRE XBRL Taxonomy Extension Presentation Linkbase Document
         

 

-22

 

 

 

SIGNATURES

 

 

 

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.

 

 

TAYLOR DEVICES, INC.  
(Registrant)  

 

 

 

 

By: /s/Timothy J. Sopko Date: August 27, 2021
  Timothy J. Sopko    
  Chief Executive Officer    
  (Principal Executive Officer)    

 

 

 

 

and

 

 

 

 

By: /s/Mark V. McDonough Date: August 27, 2021
  Mark V. McDonough    
  Chief Financial Officer    

 

 

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.

 

 

 

 

By: /s/John Burgess By: /s/Robert M. Carey
  John Burgess, Director   Robert M. Carey, Director
  August 27, 2021   August 27, 2021

 

 

 

 

 

By: /s/F. Eric Armenat By: /s/Alan R. Klembczyk
  F. Eric Armenat, Director   Alan R. Klembczyk, President and Director
  August 27, 2021   August 27, 2021

 

-23

 

 

 

[Lumsden & McCormick, LLP Letterhead]

 

 

 

 

 

 

CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

 

 

 

 

To The Board of Directors of

Taylor Devices, Inc.

 

 

Gentlemen:

 

 

We hereby consent to the incorporation by reference in this Annual Report on Form 10-K (Commission File Number 0-3498) of Taylor Devices, Inc. of our report dated August 27, 2021 and any reference thereto in the Annual Report to Shareholders for the fiscal year ended May 31, 2021.

 

We also consent to such incorporation by reference in Registration Statement Nos. 333-114085, 333-133340, 333-155284, 333-184809, 333-210660, and 333-232121 of Taylor Devices, Inc. on Form S-8 of our report dated August 27, 2021.

 

 

/s/Lumsden & McCormick, LLP

Lumsden & McCormick, LLP

Buffalo, New York

August 27, 2021

 

-24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY

 

CONSOLIDATED FINANCIAL STATEMENTS

 

May 31, 2021

-25

[Lumsden & McCormick, LLP Letterhead]

 

 

 

 

 

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

 

 

 

The Board of Directors and Stockholders

Taylor Devices, Inc.

 

 

Opinion on the Financial Statements

 

We have audited the accompanying consolidated balance sheets of Taylor Devices, Inc. and Subsidiary (the Company) as of May 31, 2021 and 2020, and the related consolidated statements of income, stockholders' equity, and cash flows for the years then ended, and the related notes to the consolidated financial statements (collectively referred to as the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial condition of the Company as of May 31, 2021 and 2020, and the results of its operations and its cash flows for the years then ended in accordance 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 financial statement presentation. We believe that our audits provide a reasonable basis for our opinion.

 

Critical Audit Matters

 

The critical audit matters communicated below are matters arising from the current period audit of the consolidated financial statements that were communicated or required to be communicated to the audit committee and that: (1) relate 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 matters below, providing separate opinions on the critical audit matters or on the accounts or disclosures to which they relate.

 

 

-26

 

 

 

Cost Estimates for Long-Term Contracts and Related Revenue Recognition

 

Description of the Matter

 

As more fully described in Note 1 to the consolidated financial statements, the Company recognizes revenue over time for long-term contracts as goods are produced. The Company uses costs incurred as the method for determining progress, and revenue is recognized based on costs incurred to date plus an estimate of margin at completion. The process of estimating margin at completion involves estimating the costs to complete production of goods and comparing those costs to the estimated final revenue amount. Long-term contracts are inherently uncertain in that revenue is fixed while the estimates of costs required to complete these contracts are subject to significant variability. Due to the technical performance requirements in many of these contracts, changes to cost estimates could occur, resulting in higher or lower margins when the contracts are completed.

 

Given the inherent uncertainty and significant judgments necessary to estimate future costs at completion, auditing these estimates involved a focused audit effort and a high degree of auditor judgment.

 

How We Addressed the Matter in Our Audit

 

Our auditing procedures related to the cost estimates for long-term contracts and related revenue recognition included the following, among others:

  • We evaluated the appropriateness and consistency of management’s methods used to develop its estimates.
  • We evaluated the reasonableness of judgments made and significant assumptions used by management relating to key estimates.
  • We selected a sample of executed contracts to understand the contract, perform an independent assessment of the appropriate timing of revenue recognition, and test the mathematical accuracy of revenue recognized based on costs incurred to date relative to total estimated costs at completion.
  • We performed inquiries of the Company’s project managers and others directly involved with the contracts to evaluate project status and project challenges which may affect total estimated costs to complete. We also observed the project work site when key estimates related to tangible or physical progress of the project.
  • We tested the accuracy and completeness of the data used in developing key estimates, including material, labor, overhead, and sub-contractor costs.
  • We performed retrospective reviews of prior year long-term contracts, comparing actual performance to estimated performance and the related financial statement impact, when evaluating the thoroughness and precision of management’s estimation process in previous years.

 

Valuation of Inventory

 

Description of the Matter

 

As of May 31, 2021, the Company’s inventory balance was $5.8 million, net of a $100,000 allowance for obsolescence, its maintenance and other inventory balance was $1.6 million, net of a $2.0 million allowance for obsolescence, and its provision for obsolescence for the year ended was $1.5 million. As discussed in Note 5, maintenance and other inventory represents certain items that are estimated to have a product life-cycle in excess of twelve months the Company is required to maintain for service of products sold and items that are generally subject to spontaneous ordering. The Company evaluates its inventory for obsolescence on an ongoing basis by considering historical usage as well as requirements for future orders.

 

Given the inherent uncertainty and significant judgments necessary to estimate potential inventory obsolescence, auditing management’s estimates involved a high degree of auditor judgment.

 

 

 

-27
 

 

 

How We Addressed the Matter in Our Audit

 

Our auditing procedures related to valuation of inventory included the following, among others:

  • We evaluated the appropriateness and consistency of management’s methods used to develop its estimates.
  • We evaluated the reasonableness of judgments made and significant assumptions used by management relating to key estimates.
  • We inquired of management relative to write-offs of inventory during the year.
  • We tested the completeness and accuracy of management’s schedule of inventory.
  • We developed an independent expectation of the obsolescence reserve based on our knowledge of the Company’s inventory, including analysis of slow-moving items and historical usage and compared it to actual.
  • We examined management’s lower of cost or net realizable value analysis and performed procedures to test its completeness and accuracy.
  • We selected a sample of material purchases made during the year to ensure they were included in inventory at the proper value.
  • During our physical inventory observation, we toured the Company’s warehouses and examined inventory on hand for any indications of obsolescence.

 

/s/Lumsden & McCormick, LLP

Lumsden & McCormick, LLP

 

 

We have served as the Company’s auditor since 1998.

 

Buffalo, New York

August 27, 2021

-28

 

TAYLOR DEVICES, INC. AND SUBSIDIARY      
       
Consolidated Balance Sheets      
       
May 31,  2021  2020
       
Assets      
Current assets:          
Cash and cash equivalents  $20,581,604   $15,159,827 
Short-term investments   1,097,012    1,071,950 
Accounts and other receivables, net   4,120,564    5,819,471 
Inventory   5,835,596    10,107,437 
Prepaid expenses   522,747    460,212 
Prepaid income taxes   454,778    50,148 
Costs and estimated earnings in excess of billings   1,499,604    1,754,573 
Total current assets   34,111,905    34,423,618 
           
Maintenance and other inventory, net   1,612,839    879,050 
Property and equipment, net   9,816,594    9,407,490 
Cash value of life insurance, net   200,538    195,621 
Deferred income taxes   190,115    170,115 
Total assets  $45,931,991   $45,075,894 
Liabilities and Stockholders' Equity          
Current liabilities:          
Short-term borrowings  $     $1,461,500 
Accounts payable   1,787,325    1,370,175 
Accrued commissions   269,064    305,885 
Other accrued expenses   1,715,409    1,663,914 
Billings in excess of costs and estimated earnings   1,361,985    736,866 
Total current liabilities   5,133,783    5,538,340 
           
Stockholders' Equity:          
Common stock, $.025 par value, authorized 8,000,000 shares,    issued 4,055,275 and 4,040,805 shares   101,305    100,943 
Paid-in capital   10,010,430    9,759,063 
Retained earnings   33,601,475    32,538,580 
Stockholders’ equity before treasury stock   43,713,210    42,398,586 
Treasury stock – 558,834 and 553,934 shares at cost   (2,915,002)   (2,861,032)
Total stockholders' equity   40,798,208    39,537,554 
 Total liabilities and stockholders’ equity  $45,931,991   $45,075,894 
           
See notes to consolidated financial statements.          
           

 

-29

 

TAYLOR DEVICES, INC. AND SUBSIDIARY      
       
Consolidated Statements of Income      
       
For the years ended May 31,  2021  2020
       
       
Sales, net  $22,509,641   $28,381,541 
           
Cost of goods sold   19,334,950    19,144,451 
           
     Gross profit   3,174,691    9,237,090 
           
Selling, general and administrative expenses   5,526,774    5,934,410 
           
     Operating income (loss)   (2,352,083)   3,302,680 
           
Other income          
   Interest, net   53,654    111,054 
   Paycheck Protection Program loan forgiveness   1,461,500       
   Employee Retention Credit   1,510,131       
   Miscellaneous   8,693    2,242 
Total other income   3,033,978    113,296 
           
     Income before provision for income taxes   681,895    3,415,976 
           
Provision for income taxes (benefit)   (381,000)   386,000 
           
     Net income  $1,062,895   $3,029,976 
           
Basic and diluted earnings per common share  $0.30   $0.87 
           
See notes to consolidated financial statements.          
           

 

-30

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY      
       
Consolidated Statements of Shareholders’ Equity      
       
For the years ended May 31,  2021  2020
       
Common Stock          
Beginning of period  $100,943   $100,735 
Issuance of shares for employee stock purchase plan   37    34 
Issuance of shares for employee stock option plan   325    174 
End of period   101,305    100,943 
           
Paid-in Capital          
Beginning of period   9,759,063    9,538,892 
Issuance of shares for employee stock purchase plan   14,954    13,824 
Issuance of shares for employee stock option plan   82,070    63,250 
Stock options issued for services   154,343    143,097 
End of period   10,010,430    9,759,063 
           
Retained Earnings          
Beginning of period   32,538,580    29,508,604 
Net income   1,062,895    3,029,976 
End of period   33,601,475    32,538,580 
           
Treasury Stock          
Beginning of period   (2,861,032)   (2,829,359)
Issuance of shares for employee stock option plan   (53,970)   (31,673)
End of period   (2,915,002)   (2,861,032)
           
 Total stockholders' equity  $40,798,208   $39,537,554 
           

 

 

See notes to consolidated financial statements.

-31

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY            
       
Consolidated Statements of Cash Flows      
       
For the years ended May 31,   2021    2020
       
Operating activities:          
Net income  $1,062,895   $3,029,976 
Adjustments to reconcile net income to net cash flows from operating activities:          
Depreciation   1,212,713    1,141,110 
Stock options issued for services   154,343    143,097 
Bad debt expense   134,000       
Provision for inventory obsolescence   1,500,000    180,000 
Deferred income taxes   (20,000)   19,000 
Paycheck Protection Program debt forgiveness   (1,461,500)      
Changes in other current assets and liabilities:          
Accounts and other receivables   1,564,907    (540,169)
Inventory   2,038,052    804,721 
Prepaid expenses   (62,535)   (148,052)
Prepaid income taxes   (404,630)   186,869 
Costs and estimated earnings in excess of billings   254,969    5,817,917 
Accounts payable   417,150    (32,517)
Accrued commissions   (36,821)   (1,003,473)
Other accrued expenses   51,495    131,644 
Billings in excess of costs and estimated earnings   625,119    103,163 
Net operating activities   7,030,157    9,833,286 
           
Investing activities:          
Acquisition of property and equipment   (1,621,817)   (1,231,158)
Increase in short-term investments   (25,062)   (16,359)
Increase in cash value of life insurance   (4,917)   (4,872)
Net investing activities   (1,651,796)   (1,252,389)
           
Financing activities:          
Short-term borrowings         1,461,500 
Proceeds from issuance of common stock   43,416    45,608 
Net financing activities   43,416    1,507,108 
           
Net change in cash and cash equivalents   5,421,777    10,088,005 
           
Cash and cash equivalents - beginning   15,159,827    5,071,822 
Cash and cash equivalents - ending  $20,581,604   $15,159,827 
           
See notes to consolidated financial statements.          
           

 

 

 

-32

 

TAYLOR DEVICES, INC. AND SUBSIDIARY
 
Notes to Consolidated Financial Statements
 

 

1. Summary of Significant Accounting Policies:

 

Nature of Operations:

 

Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.

 

68% of the Company's 2021 revenue was generated from sales to customers in the United States and 20% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.

 

83% of the Company's 2020 revenue was generated from sales to customers in the United States and 11% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.

 

Principles of Consolidation:

 

The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.

 

Subsequent Events:

 

The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.

 

Use of Estimates:

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.

 

Cash and Cash Equivalents:

 

The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.

 

Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.

 

Short-term Investments:

 

At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2021 and May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (16) mature on various dates during the period August 2021 to September 2025. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.

 

The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.

 

-33

Accounts and Other Receivables:

 

Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.

 

Inventory:

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

 

Property and Equipment:

 

Property and equipment is stated at cost net of accumulated depreciation. Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.

 

Cash Value of Life Insurance:

 

Cash value of life insurance is stated at the surrender value of the contracts.

 

Revenue Recognition:

 

Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

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. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2021, 43% of revenue was recorded for contracts in which revenue was recognized over time while 57% was recognized at a point in time. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time.

Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.

-34

 

If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2021 and 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.

 

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $146,878 and $420,786 for the years ended May 31, 2021 and 2020. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

 

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $924,000 and $585,000 for the years ended May 31, 2021 and 2020.

 

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2021 or 2020. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2021 and 2020.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2018.

 

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

 

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2021 and 2020 was $154,343 and $143,097.

 

-35

 

 

New Accounting Standards:

 

Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

 

 

2. Accounts and Other Receivables:

 

   2021  2020
Customers  $3,184,970   $5,399,915 
Customers – retention   200,956    630,823 
Gross accounts receivable   3,385,926    6,030,738 
Less Allowance for doubtful accounts   6,781    211,267 
Add Other receivables   741,419       
Net accounts receivable  $4,120,564   $5,819,471 

 

Retention receivable from customers represents amounts invoiced to customers where payments have been partially withheld pending completion of the project. All amounts are expected to be collected within the next fiscal year.

 

Other receivable is an amount of Employee Retention Credit claimed by the Company for the second calendar quarter of 2021 and is expected to be received in the third calendar quarter of 2021.

 

 

3. Inventory:

 

   2021  2020
Raw materials  $503,344   $658,024 
Work-in-process   5,076,377    8,586,404 
Finished goods   355,875    963,009 
Gross inventory   5,935,596    10,207,437 
Less allowance for obsolescence   100,000    100,000 
Net inventory  $5,835,596   $10,107,437 

 

4. Costs and Estimated Earnings on Uncompleted Contracts:

 

   2021  2020
Costs incurred on uncompleted contracts  $3,372,276   $6,395,550 
Estimated earnings   778,011    3,816,527 
Total costs and estimated earnings   4,150,287    10,212,077 
Less billings to date   4,012,668    9,194,370 
Costs and estimated earnings not billed  $137,619   $1,017,707 

 

Amounts are included in the accompanying balance sheets under the following captions:

 

   2021  2020
Costs and estimated earnings in excess of billings  $1,499,604   $1,754,573 
Billings in excess of costs and estimated earnings   1,361,985    736,866 
Costs and estimated earnings not billed  $137,619   $1,017,707 

-36

 

The following summarizes the status of Projects in progress as of May 31, 2021 and 2020:

 

   2021  2020
Number of Projects in progress   14    15 
Aggregate percent complete   32%   80%
Aggregate amount remaining  $9,333,701   $2,234,962 
Percentage of total value invoiced to customer   30%   74%

 

The Company expects to recognize the entire remaining revenue on all open projects during the May 31, 2022 fiscal year.

 

Revenue recognized during the years ended May 31, 2021 and 2020 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $736,866 and $633,703.

 

5. Maintenance and Other Inventory:

 

   2021  2020
Maintenance and other inventory  $3,612,000   $2,479,497 
Less allowance for obsolescence   1,999,161    1,600,447 
Maintenance and other inventory, net  $1,612,839   $879,050 

 

Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.

 

This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence.

 

During fiscal 2021, the Company began a thorough review of the facilities including the flow of inventory through the factory and warehouse areas to determine the most efficient utilization of available space. Inventory purchasing practices and stocking levels were also evaluated and it was determined that a significant portion of the older items would be disposed of while the allowance for potential inventory obsolescence would be increased as more items are identified for disposal. $1,101,000 of inventory was disposed of during the year. The provision for potential inventory obsolescence was $1,500,000 and $180,000 for the years ended May 31, 2021 and 2020.

 

6. Property and Equipment:

 

   2021  2020
Land  $195,220   $195,220 
Buildings and improvements   9,584,087    9,457,142 
Machinery and equipment   12,366,569    11,242,667 
Office furniture and equipment   2,536,688    2,209,382 
Autos and trucks   24,818    24,818 
Land improvements   476,429    455,429 
Gross property and equipment   25,183,811    23,584,658 
Less accumulated depreciation   15,367,217    14,177,168 
Property and equipment, net  $9,816,594   $9,407,490 

 

Depreciation expense was $1,212,713 and $1,141,110 for the years ended May 31, 2021 and 2020.

 

The Company has commitments to make capital expenditures of approximately $400,000 as of May 31, 2021.

 

-37

 

 

7. Short-Term Borrowings:

 

During 2020, the Company received a loan totaling $1,461,500 from the Small Business Administration (SBA) under the Paycheck Protection Program (PPP) of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the pandemic described in Note 20. The total amount of the loan was forgiven during fiscal 2021 under provisions of the CARES Act. The amount of the loan forgiveness is included in Other income on the Consolidated Statements of Income.

 

The Company has available a $10,000,000 demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and subject to renewal annually.

 

There is no amount outstanding under the line of credit at May 31, 2021 or May 31, 2020.

 

The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. Outstanding checks under this arrangement totaled $366,209 and $523,344 as of May 31, 2021 and 2020. These amounts are included in accounts payable.

 

8. Legal Proceedings:

 

There are no legal proceedings except for routine litigation incidental to the business.

 

9. Sales:

 

The Company manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators. Management does not track or otherwise account for sales broken down by these categories. Sales of the Company's products are made to three general groups of customers: industrial, structural and aerospace / defense. A breakdown of sales to these three general groups of customers is as follows:

 

   2021  2020
Structural  $10,137,468   $15,621,784 
Aerospace / Defense   10,183,399    10,771,129 
Industrial   2,188,774    1,988,628 
Sales, net  $22,509,641   $28,381,541 

 

Sales to two customers approximated 21% (11% and 10%, respectively) of net sales for 2021. Sales to a single customer approximated 10% of net sales for 2020.

 

10. Income Taxes:

   2021  2020
Current tax provision (benefit):          
Federal  $(361,000)  $375,000 
State            
Total current tax provision   (361,000)   375,000 
Deferred tax provision (benefit):          
Federal   (20,000)   11,000 
State            
Total deferred tax provision   (20,000)   11,000 
Total tax provision  $(381,000)  $386,000 

-38

 

 

A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:

   2021  2020
Computed tax provision at the expected statutory rate  $143,200   $717,400 
State income tax - net of Federal tax benefit         500 
Tax effect of permanent differences:          
Research tax credits   (218,000)   (272,000)
Foreign-derived intangible income deduction         (99,739)
PPP loan forgiveness   (306,900)      
Other permanent differences   41,500    40,200 
Other   (40,800)   (361)
Total tax provision  $(381,000)  $386,000 
Effective income tax rate   (55.9%)   11.3%


 

Significant components of the Company's deferred tax assets and liabilities consist of the following:

 

   2021  2020
Deferred tax assets:          
Allowance for doubtful receivables  $1,400   $44,400 
Tax inventory adjustment   22,900    94,000 
Allowance for obsolete inventory   440,800    357,100 
Accrued vacation   81,400    60,500 
Accrued commissions   5,900    3,900 
Warranty reserve   23,900    39,400 
Stock options issued for services   238,500    230,200 
Total deferred tax assets   814,800    829,500 
Deferred tax liabilities:          
Excess tax depreciation   (624,685)   (659,385)
Net deferred tax assets  $190,115   $170,115 

 

 

Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. The Company will need to generate approximately $3.9 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2021 of $814,800.

 

The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2021, the Company had State investment tax credit carryforwards of approximately $368,000 expiring through May 2026.

 

-39

 

11. Earnings Per Common Share:

 

Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.

 

A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:

 

   2021  2020
Average common shares outstanding   3,490,213    3,481,128 
Common shares issuable under stock option plans   1,674    8,663 
Average common shares outstanding assuming dilution   3,491,887    3,489,791 

 

 

12. Related Party Transactions:

 

The Company had no related party transactions for the years ended May 31, 2021 and 2020.

 

13. Employee Stock Purchase Plan:

 

In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. Purchase of common shares can be made by employee contributions through payroll deductions. At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. During the years ended May 31, 2021 and 2020, 1,470 ($9.20 to $11.40 price per share) and 1,374 ($8.63 to $11.00 price per share) common shares, respectively, were issued to employees. As of May 31, 2021, 218,783 shares were reserved for further issue.

 

14. Stock Option Plans:

 

In 2018, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. The incentive stock options qualify for preferential treatment under the Internal Revenue Code. Under this plan, 160,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 76,000 shares have been granted as of May 31, 2021. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.

 

Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $3.27 during 2021 and $2.85 during 2020. The pricing model uses the assumptions noted in the following table. Expected volatility is based on the historical volatility of the Company's stock. The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.

   2021  2020
Risk-free interest rate   2.31%   1.98%
Expected life in years  4.0   3.9 
Expected volatility   33%   32%
Expected dividend yield   0%   0%

 

-40

 

The following is a summary of stock option activity:

   Shares  Weighted Average Exercise Price  Intrinsic Value
Outstanding - May 31, 2019   224,000   $11.71   $228,132 
     Options granted   50,250   $10.30      
     Less: options exercised   10,000   $6.35      
     Less: options expired   12,000   $14.34      
Outstanding - May 31, 2020   252,250   $11.52   $209,835 
     Options granted   47,250   $11.26      
     Less: options exercised   13,000   $6.34      
     Less: options expired   18,750   $13.31      
Outstanding - May 31, 2021   267,750   $11.60   $271,426 

 

We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (137,750 at May 31, 2021 and 98,000 at May 31, 2020.) The Company's closing stock price was $11.85 and $10.99 as of May 31, 2021 and 2020. As of May 31, 2021, there are 84,000 options available for future grants under the 2018 stock option plan. $28,425 and $31,750 was received from the exercise of share options during the fiscal years ended May 31, 2021 and 2020.

 

The following table summarizes information about stock options outstanding at May 31, 2021:

 

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$  7.01-$  8.00   15,000    1.6   $7.74 
$  8.01-$  9.00   24,250    2.1   $8.71 
$  9.01-$10.00   30,000    7.6   $9.85 
$10.01-$11.00   32,250    7.2   $10.17 
$11.01-$12.00   91,250    7.4   $11.71 
$12.01-$13.00   33,750    4.3   $12.36 
$13.01-$14.00   15,000    4.2   $13.80 
$16.01-$17.00   15,000    3.6   $16.40 
$19.01-$20.00   11,250    5.2   $19.26 
$  7.01-$20.00   267,750    5.7   $11.60 
                

 

The following table summarizes information about stock options outstanding at May 31, 2020:

 

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$  5.01-$  6.00   10,000    0.9   $5.69 
$  7.01-$  8.00   15,000    2.9   $7.74 
$  8.01-$  9.00   27,250    3.6   $8.69 
$  9.01-$10.00   30,750    9.9   $9.85 
$10.01-$11.00   15,000    7.9   $10.30 
$11.01-$12.00   68,750    7.8   $11.57 
$12.01-$13.00   40,500    5.8   $12.38 
$13.01-$14.00   15,000    6.9   $13.80 
$16.01-$17.00   15,000    5.9   $16.40 
$19.01-$20.00   15,000    6.2   $19.26 
$  5.01-$20.00   252,250    6.5   $11.52 
                

-41

 

 

15. Preferred Stock:

 

The Company has 2,000,000 authorized but unissued shares of preferred stock which may be issued in series. The shares of each series shall have such rights, preferences, and limitations as shall be fixed by the Board of Directors.

 

16. Treasury Stock:

 

Treasury shares are 558,834 and 553,934 at May 31, 2021 and 2020.

 

17. Retirement Plan:

 

The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. The Company matches a percentage of employee voluntary salary deferrals subject to limitations. The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. The amount expensed under the plan was $288,470 and $158,191 for the years ended May 31, 2021 and 2020.

 

18. Fair Value of Financial Instruments:

 

The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.

 

The fair values of short-term investments were determined as described in Note 1.

 

19. Cash Flows Information:

 

   2021  2020
       
  Interest paid   none    none 
           
  Income taxes paid  $43,630   $180,131 

 

 

20. Risks and Uncertainties:

 

On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also fluctuated significantly during this time. The extent of the impact of COVID-19 on the Company’s operational and financial performance was significant in fiscal 2021. While the use of vaccinations world-wide have apparently slowed spread of the disease, the extent of the impact of COVID-19 on the Company’s operational and financial performance in fiscal 2022 will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.

 

As a result of the pandemic described above, the Company applied for, and received, financial assistance from the U.S. federal government as part of the CARES Act and the Consolidated Appropriations Act of 2021 (CAA) including: a.) $1,461,500 of income due to the forgiveness of the PPP loan by the SBA (discussed previously in Note 7), and b.) $1,510,131 of Employee Retention Credit income. These amounts are included in Other income on the Consolidated Statements of Income.

 

EX-31 2 ceo302certification2021.htm CEO 302 CERTIFICATION

Exhibit 31(i)

 

 

CERTIFICATION OF CHIEF EXECUTIVE OFFICER

PURSUANT TO RULE 13a - 14(a) OF THE SECURITIES EXCHANGE ACT OF 1934,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

 

I, Timothy J. Sopko, certify that:

 

1. I have reviewed this annual report on Form 10-K of Taylor Devices, Inc.;

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

/s/ Timothy J. Sopko
 

Timothy J. Sopko

Chief Executive Officer

EX-31 3 cfo302certification2021.htm CFO 302 CERTIFICATION

Exhibit 31(ii)

 

 

CERTIFICATION OF CHIEF FINANCIAL OFFICER

PURSUANT TO RULE 13a - 14(a) OF THE SECURITIES EXCHANGE ACT OF 1934,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

 

I, Mark V. McDonough, certify that:

 

1. I have reviewed this annual report on Form 10-K of Taylor Devices, Inc.;

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

/s/ Mark V. McDonough
 

Mark V. McDonough

Chief Financial Officer

 

EX-32 4 cfo906certification2021.htm CFO 906 CERTIFICATION

Exhibit 32(ii)

 

 

 

 

 

CERTIFICATION OF CHIEF FINANCIAL OFFICER

PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906

OF THE SARBANES-OXLEY ACT OF 2002

 

In connect with the quarterly report of Taylor Devices, Inc. (the "Company") on Form 10-K for the fiscal year ended May 31, 2021 to be filed with Securities and Exchange Commission on or about the date hereof (the "Report"), I, Mark V. McDonough, Chief Financial Officer of the Company, certify, pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, 18 U.S.C. Section 1350, 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 as of the dates and for the periods covered by the Report.

 

It is not intended that this statement be deemed to be filed for purposes of the Securities Exchange Act of 1934.

 

 

 

Date: August 27, 2021

 

By: /s/ Mark V. McDonough
   

Mark V. McDonough,

Chief Financial Officer

 

 

EX-32 5 ceo906certification2021.htm CEO 906 CERTIFICATION

 

Exhibit 32(i)

 

 

 

 

 

CERTIFICATION OF CHIEF EXECUTIVE OFFICER

PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906

OF THE SARBANES-OXLEY ACT OF 2002

 

In connect with the quarterly report of Taylor Devices, Inc. ("the Company") on Form 10-K for the fiscal year ended May 31, 2021 to be filed with Securities and Exchange Commission on or about the date hereof (the
"Report"), I, Timothy J. Sopko Chief Executive Officer of the Company, certify, pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, 18 U.S.C. Section 1350, 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 as of the dates and for the periods covered by the Report.

 

It is not intended that this statement be deemed to be filed for purposes of the Securities Exchange Act of 1934.

 

 

 

Date: August 27, 2021

 

By:  /s/ Timothy J. Sopko
   

Timothy J. Sopko

Chief Executive Officer

 

 

EX-101.SCH 6 tayd-20210531.xsd XBRL SCHEMA FILE 00000001 - Document - Cover link:presentationLink link:calculationLink link:definitionLink 00000002 - Statement - Consolidated Balance Sheets link:presentationLink link:calculationLink link:definitionLink 00000003 - Statement - Consolidated Balance Sheets (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 00000004 - Statement - Consolidated Statements of Income link:presentationLink link:calculationLink link:definitionLink 00000005 - Statement - Consolidated Statements of Shareholders Equity link:presentationLink link:calculationLink link:definitionLink 00000006 - Statement - Consolidated Statements of Cash Flows link:presentationLink link:calculationLink link:definitionLink 00000007 - Disclosure - 1. Summary of Significant Accounting Policies: link:presentationLink link:calculationLink link:definitionLink 00000008 - Disclosure - 2. Accounts and Other Receivables: link:presentationLink link:calculationLink link:definitionLink 00000009 - Disclosure - 3. Inventory: link:presentationLink link:calculationLink link:definitionLink 00000010 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: link:presentationLink link:calculationLink link:definitionLink 00000011 - Disclosure - 5. Maintenance and Other Inventory: link:presentationLink link:calculationLink link:definitionLink 00000012 - Disclosure - 6. Property and Equipment: link:presentationLink link:calculationLink link:definitionLink 00000013 - Disclosure - 7. Short-Term Borrowings: link:presentationLink link:calculationLink link:definitionLink 00000014 - Disclosure - 8. Legal Proceedings: link:presentationLink link:calculationLink link:definitionLink 00000015 - Disclosure - 9. Sales: link:presentationLink link:calculationLink link:definitionLink 00000016 - Disclosure - 10. Income Taxes: link:presentationLink link:calculationLink link:definitionLink 00000017 - Disclosure - 11. Earnings Per Common Share: link:presentationLink link:calculationLink link:definitionLink 00000018 - Disclosure - 12. Related Party Transactions: link:presentationLink link:calculationLink link:definitionLink 00000019 - Disclosure - 13. Employee Stock Purchase Plan: link:presentationLink link:calculationLink link:definitionLink 00000020 - Disclosure - 14. Stock Option Plans: link:presentationLink link:calculationLink link:definitionLink 00000021 - Disclosure - 15. Preferred Stock: link:presentationLink link:calculationLink link:definitionLink 00000022 - Disclosure - 16. Treasury Stock: link:presentationLink link:calculationLink link:definitionLink 00000023 - Disclosure - 17. Retirement Plan: link:presentationLink link:calculationLink link:definitionLink 00000024 - Disclosure - 18. Fair Value of Financial Instruments: link:presentationLink link:calculationLink link:definitionLink 00000025 - Disclosure - 19. Cash Flows Information: link:presentationLink link:calculationLink link:definitionLink 00000026 - Disclosure - 20. Risks and Uncertainties: link:presentationLink link:calculationLink link:definitionLink 00000027 - Disclosure - 1. Summary of Significant Accounting Policies: (Policies) link:presentationLink link:calculationLink link:definitionLink 00000028 - Disclosure - 2. Accounts and Other Receivables: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000029 - Disclosure - 3. Inventory: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000030 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000031 - Disclosure - 5. Maintenance and Other Inventory: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000032 - Disclosure - 6. Property and Equipment: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000033 - Disclosure - 9. Sales: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000034 - Disclosure - 10. Income Taxes: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000035 - Disclosure - 11. Earnings Per Common Share: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000036 - Disclosure - 14. Stock Option Plans: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000037 - Disclosure - 19. Cash Flows Information: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000038 - Disclosure - 1. Summary of Significant Accounting Policies: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000039 - Disclosure - Accounts receivable table (Details) link:presentationLink link:calculationLink link:definitionLink 00000040 - Disclosure - Inventory table (Details) link:presentationLink link:calculationLink link:definitionLink 00000041 - Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details) link:presentationLink link:calculationLink link:definitionLink 00000042 - Disclosure - Costs and estimated earnings on uncompleted contracts table (Details) link:presentationLink link:calculationLink link:definitionLink 00000043 - Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details) link:presentationLink link:calculationLink link:definitionLink 00000044 - Disclosure - Maintenance and other inventory table (Details) link:presentationLink link:calculationLink link:definitionLink 00000045 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000046 - Disclosure - 5. Maintenance and Other Inventory: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000047 - Disclosure - Property and equipment table (Details) link:presentationLink link:calculationLink link:definitionLink 00000048 - Disclosure - 6. Property and Equipment: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000049 - Disclosure - 7. Short-Term Borrowings: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000050 - Disclosure - Sales by major customer type (Details) link:presentationLink link:calculationLink link:definitionLink 00000051 - Disclosure - 9. Sales: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000052 - Disclosure - Income Taxes Table (Details) link:presentationLink link:calculationLink link:definitionLink 00000053 - Disclosure - Reconciliation of income tax statutory rate to effective rate (Details) link:presentationLink link:calculationLink link:definitionLink 00000054 - Disclosure - Components of Deferred Tax Assets and Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 00000055 - Disclosure - 10. Income Taxes: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000056 - Disclosure - Earnings per common share table (Details) link:presentationLink link:calculationLink link:definitionLink 00000057 - Disclosure - 13. Employee Stock Purchase Plan: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000058 - Disclosure - Stock option plans table (Details) link:presentationLink link:calculationLink link:definitionLink 00000059 - Disclosure - Stock options roll foward (Details) link:presentationLink link:calculationLink link:definitionLink 00000060 - Disclosure - Stock option plans - Stock options outstanding and exercisable (Details) link:presentationLink link:calculationLink link:definitionLink 00000061 - Disclosure - 14. Stock Option Plans: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000062 - Disclosure - 15. Preferred Stock: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000063 - Disclosure - 16. Treasury Stock: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000064 - Disclosure - 17. Retirement Plan: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000065 - Disclosure - Supplemental cash flow information (Details) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 tayd-20210531_cal.xml XBRL CALCULATION FILE EX-101.DEF 8 tayd-20210531_def.xml XBRL DEFINITION FILE EX-101.LAB 9 tayd-20210531_lab.xml XBRL LABEL FILE Equity Components [Axis] Common Stock [Member] Additional Paid-in Capital [Member] Retained Earnings [Member] Treasury Stock [Member] Customer [Axis] Structural Seismic Wind Revenue Aerospace Defense Revenue Industrial Revenue Exercise Price Range [Axis] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Two [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Three [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Four [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Five [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Six [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Seven [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eight [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Nine [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Ten [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range One [Member] Cover [Abstract] Document Type Amendment Flag Amendment Description Document Registration Statement Document Annual Report Document Quarterly Report Document Transition Report Document Shell Company Report Document Shell Company Event Date Document Period Start Date Document Period End Date Document Fiscal Period Focus Document Fiscal Year Focus Current Fiscal Year End Date Entity File Number Entity Registrant Name Entity Central Index Key Entity Primary SIC Number Entity Tax Identification Number Entity Incorporation, State or Country Code Entity Address, Address Line One Entity Address, Address Line Two Entity Address, Address Line Three Entity Address, City or Town Entity Address, State or Province Entity Address, Country Entity Address, Postal Zip Code Country Region City Area Code Local Phone Number Extension Written Communications Soliciting Material Pre-commencement Tender Offer Pre-commencement Issuer Tender Offer Title of 12(b) Security No Trading Symbol Flag Trading Symbol Security Exchange Name Title of 12(g) Security Security Reporting Obligation Annual Information Form Audited Annual Financial Statements Entity Well-known Seasoned Issuer Entity Voluntary Filers Entity Current Reporting Status Entity Interactive Data Current Entity Filer Category Entity Small Business Entity Emerging Growth Company Elected Not To Use the Extended Transition Period Document Accounting Standard Other Reporting Standard Item Number Entity Shell Company Entity Public Float Entity Bankruptcy Proceedings, Reporting Current Entity Common Stock, Shares Outstanding Documents Incorporated by Reference [Text Block] Statement of Financial Position [Abstract] Assets Current assets: Cash and cash equivalents Short-term investments Accounts and other receivables, net Inventory Prepaid expenses Prepaid income taxes Costs and estimated earnings in excess of billings Total current assets Maintenance and other inventory, net Property and equipment, net Cash value of life insurance, net Deferred income taxes Total assets Liabilities and Stockholders' Equity Current liabilities: Short-term borrowings Accounts payable Accrued commissions Other accrued expenses Billings in excess of costs and estimated earnings Total current liabilities Stockholders' Equity: Common stock, $.025 par value, authorized 8,000,000 shares,    issued 4,055,275 and 4,040,805 shares Paid-in capital Retained earnings Stockholders’ equity before treasury stock Treasury stock – 558,834 and 553,934 shares at cost Total stockholders' equity  Total liabilities and stockholders’ equity Common Stock, Par or Stated Value Per Share Common Stock, Shares Authorized Common Stock, Shares, Issued Treasury Stock, Shares Income Statement [Abstract] Sales, net Cost of goods sold      Gross profit Selling, general and administrative expenses      Operating income (loss)    Interest, net    Paycheck Protection Program loan forgiveness    Employee Retention Credit    Miscellaneous Total other income      Income before provision for income taxes Provision for income taxes (benefit)      Net income Basic and diluted earnings per common share Statement [Table] Statement [Line Items] Stockholders' Equity Attributable to Parent, Beginning Balance Stock Issued During Period, Value, Employee Stock Purchase Plan Stock Issued During Period, Value, Employee Benefit Plan Stockholders' Equity Attributable to Parent, Ending Balance APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition Net Income (Loss) Attributable to Parent Treasury Stock, Value, Beginning Balance Treasury Stock, Value, Ending Balance Stockholders' Equity Attributable to Parent Statement of Cash Flows [Abstract] Operating activities: Net income Adjustments to reconcile net income to net cash flows from operating activities: Depreciation Stock options issued for services Bad debt expense Provision for inventory obsolescence Deferred income taxes Paycheck Protection Program debt forgiveness Changes in other current assets and liabilities: Accounts and other receivables Inventory Prepaid expenses Prepaid income taxes Costs and estimated earnings in excess of billings Accounts payable Accrued commissions Other accrued expenses Billings in excess of costs and estimated earnings Net operating activities Investing activities: Acquisition of property and equipment Increase in short-term investments Increase in cash value of life insurance Net investing activities Financing activities: Short-term borrowings Proceeds from issuance of common stock Net financing activities Net change in cash and cash equivalents Cash and cash equivalents - beginning Cash and cash equivalents - ending Accounting Policies [Abstract] 1. Summary of Significant Accounting Policies: Receivables [Abstract] 2. Accounts and Other Receivables: Inventory Disclosure [Abstract] 3. Inventory: Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract] 4. Costs and Estimated Earnings on Uncompleted Contracts: 5. Maintenance and Other Inventory: Property, Plant and Equipment [Abstract] 6. Property and Equipment: Debt Disclosure [Abstract] 7. Short-Term Borrowings: Commitments and Contingencies Disclosure [Abstract] 8. Legal Proceedings: Sales 9. Sales: Income Tax Disclosure [Abstract] 10. Income Taxes: Earnings Per Share [Abstract] 11. Earnings Per Common Share: Related Party Transactions [Abstract] 12. Related Party Transactions: Share-based Payment Arrangement [Abstract] 13. Employee Stock Purchase Plan: 14. Stock Option Plans: Equity [Abstract] 15. Preferred Stock: 16. Treasury Stock: Retirement Benefits [Abstract] 17. Retirement Plan: 18. Fair Value of Financial Instruments: Supplemental Cash Flow Elements [Abstract] 19. Cash Flows Information: Risks and Uncertainties [Abstract] 20. Risks and Uncertainties: Nature of Operations: Principles of Consolidation: Subsequent Events: Use of Estimates: Cash and Cash Equivalents: Short-term Investments: Accounts and Other Receivables: Inventory: Property and Equipment: Cash Value of Life Insurance: Revenue Recognition: Shipping and Handling Costs: Research and Development Costs: Income Taxes: Sales Taxes: Stock-Based Compensation: New Accounting Standards: Accounts receivable table Inventory table Costs and estimated earnings on uncompleted contracts components table Costs and estimated earnings on uncompleted contracts table Costs and estimated earnings on uncompleted contracts two table Maintenance and other inventory table Property and equipment table Sales by major customer type Income Taxes Table Reconciliation of income tax statutory rate to effective rate Components of Deferred Tax Assets and Liabilities Earnings per common share table Stock option plans table Stock options roll foward Stock option plans - Stock options outstanding and exercisable Stock option plans - Stock options outstanding and exercisable Supplemental cash flow information Percentage of total sales during a period to domestic customers Percentage of total sales during a period to export customers Percent of revenue recognized with sales contracts for which revenue is recognized over time Percent of revenue recognized with sales contracts containing a single performance obligation Shipping and handling costs Research and development costs Share based compensation expense Customers Customers – retention Gross accounts receivable Less Allowance for doubtful accounts Add Other receivables Net accounts receivable Raw materials Work-in-process Finished goods Gross inventory Less allowance for obsolescence Net inventory Costs incurred on uncompleted contracts Estimated earnings Total costs and estimated earnings Less billings to date Costs and estimated earnings not billed Costs and estimated earnings not billed Number of Projects in progress Aggregate percent complete Aggregate amount remaining Percentage of total value invoiced to customer Maintenance and other inventory Less allowance for obsolescence Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year Provision for potentially obsolete inventory Land Buildings and improvements Machinery and equipment Office furniture and equipment Autos and trucks Land improvements Gross property and equipment Less accumulated depreciation Property and equipment, net Depreciation Commitments for future capital expenditures Proceeds from Bank Debt Current borrowing capacity Outstanding balance on line of credit Uncleared checks Policyholder Account Balance [Line Items] Percentage of total sales to significant individual customers Percentage of total sales to significant individual customer 1 Percentage of total sales to significant individual customer 2 Current tax provision (benefit): Federal State Total current tax provision Deferred tax provision (benefit): Federal State Total deferred tax provision Total tax provision Computed tax provision at the expected statutory rate State income tax - net of Federal tax benefit Tax effect of permanent differences: Research tax credits Foreign-derived intangible income deduction PPP loan forgiveness Other permanent differences Other Effective income tax rate Deferred tax assets: Allowance for doubtful receivables Tax inventory adjustment Allowance for obsolete inventory Accrued vacation Accrued commissions Warranty reserve Stock options issued for services Total deferred tax assets Deferred tax liabilities: Excess tax depreciation Net deferred tax assets Deferred Tax Assets, Gross State investment tax credit carryforwards Tax Credit Carryforward, Expiration Date Average common shares outstanding Common shares issuable under stock option plans Average common shares outstanding assuming dilution Stock Issued During Period, Shares, Employee Stock Purchase Plans Risk-free interest rate Expected life in years Expected volatility Expected dividend yield Stock options outstanding Weighted average exercise price of options outstanding Intrinsic value of options outstanding Options granted Weighted average exercise price of options granted Stock options exercised Weighted average exercise price of options exercised Stock options expired Weighted average exercise price of options expired Share-based Payment Arrangement, Option, Exercise Price Range [Table] Share-based Payment Arrangement, Option, Exercise Price Range [Line Items] Range of exercise prices, Minimum Range of exercise prices, Maximum Number of Options Remaining number of years Weighted Average Exercise Price Number of Options Weighted Average Exercise Price Range of exercise prices, Minimum Range of exercise prices, Maximum Remaining number of years Weighted Average Exercise Price Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number Common shares reserved for stock options Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value Price per share of common Shares available Proceeds exercise of options Preferred shares authorized Treasury Stock Retirement plan expense   Interest paid   Income taxes paid Paycheck Protection Program Loan Forgiveness, CARES Act Employee Retention Credit, CARES Act Other Receivable Employee Retention Credit, CARES Act Estimated earnings component of costs and estimated earnings on uncompleted contracts Disclosure - Costs and estimated earnings on uncompleted contracts table text block Total costs and estimated earnings Billings to date component of Costs and estimated earnings on uncompleted contracts Costs and estimated earnings not billed on uncompleted contracts Costs and estimated earnings on uncompleted contracts two table Number of Projects in progress Aggregate percent complete of uncompleted contracts Aggregate amount of revenue remaining on uncompleted contracts Percentage of total value invoiced to customer on uncompleted contracts Noncurrent inventory valuation allowance Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year Lower limit of exercise per share price range for outstanding and exercisable stock options. Lower limit of exercise per share price range for outstanding and exercisable stock options. Upper limit of exercise per share price range for outstanding and exercisable stock options. Upper limit of exercise per share price range for outstanding and exercisable stock options. Weightrd average number of years remaining to exercise outstanding and exercisable stock options. Weightrd average number of years remaining to exercise outstanding and exercisable stock options. Percentage of total sales during a period to domestic customers. Percentage of total sales during a period to export customers. Percent of revenue recognized with sales contracts for which revenue is recognized over time. Percent of revenue recognized with sales contracts containing a single performance obligation. Assets, Current Assets [Default Label] Liabilities, Current Stockholders' Equity before Treasury Stock Treasury Stock, Value Liabilities and Equity Gross Profit Operating Income (Loss) Nonoperating Income (Expense) Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Deferred Income Tax Expense (Benefit) Increase (Decrease) in Inventories Increase (Decrease) in Prepaid Expense Increase (Decrease) in Prepaid Taxes Increase (Decrease) in Unbilled Receivables Increase (Decrease) in Accounts Payable, Trade Increase (Decrease) in Other Operating Liabilities Increase (Decrease) in Other Accrued Liabilities Increase (Decrease) in Billing in Excess of Cost of Earnings Net Cash Provided by (Used in) Operating Activities Payments to Acquire Property, Plant, and Equipment Payments to Acquire Debt Securities, Available-for-sale Payments for (Proceeds from) Life Insurance Policies Net Cash Provided by (Used in) Investing Activities Net Cash Provided by (Used in) Financing Activities Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Share-based Payment Arrangement, Outstanding Award, Activity, Excluding Option [Table Text Block] Accounts Receivable, before Allowance for Credit Loss, Current Accounts Receivable, after Allowance for Credit Loss, Current Inventory, Gross Inventory, Net Total costs and estimated earnings Costs and estimated earnings not billed Costs in Excess of Billings, Current Less allowance for obsolescence [Default Label] Property, Plant and Equipment, Gross Depreciation [Default Label] Current Income Tax Expense (Benefit) Deferred Federal Income Tax Expense (Benefit) Deferred State and Local Income Tax Expense (Benefit) Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost Deferred Tax Liabilities, Property, Plant and Equipment Deferred Tax Assets, Net of Valuation Allowance Weighted Average Number of Shares Outstanding, Diluted Range of exercise prices, Minimum [Default Label] Range of exercise prices, Maximum [Default Label] Remaining number of years to exercise outstanding and exercisable stock options SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2 EX-101.PRE 10 tayd-20210531_pre.xml XBRL PRESENTATION FILE XML 11 tayd202110k_htm.xml IDEA: XBRL DOCUMENT 0000096536 2020-06-01 2021-05-31 0000096536 2020-11-30 0000096536 2021-08-27 0000096536 2021-05-31 0000096536 2020-05-31 0000096536 2019-06-01 2020-05-31 0000096536 us-gaap:CommonStockMember 2020-05-31 0000096536 us-gaap:CommonStockMember 2019-05-31 0000096536 us-gaap:CommonStockMember 2020-06-01 2021-05-31 0000096536 us-gaap:CommonStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:CommonStockMember 2021-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2020-06-01 2021-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-06-01 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2021-05-31 0000096536 us-gaap:RetainedEarningsMember 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-05-31 0000096536 us-gaap:RetainedEarningsMember 2020-06-01 2021-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-06-01 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2021-05-31 0000096536 us-gaap:TreasuryStockMember 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2019-05-31 0000096536 us-gaap:TreasuryStockMember 2020-06-01 2021-05-31 0000096536 us-gaap:TreasuryStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2021-05-31 0000096536 2019-05-31 0000096536 tayd:StructuralSeismicWindMember 2020-06-01 2021-05-31 0000096536 tayd:StructuralSeismicWindMember 2019-06-01 2020-05-31 0000096536 tayd:AerospaceDefenseMember 2020-06-01 2021-05-31 0000096536 tayd:AerospaceDefenseMember 2019-06-01 2020-05-31 0000096536 tayd:IndustrialMember 2020-06-01 2021-05-31 0000096536 tayd:IndustrialMember 2019-06-01 2020-05-31 0000096536 2021-06-01 2026-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember 2021-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember 2020-05-31 iso4217:USD shares iso4217:USD shares pure 0000096536 false --05-31 2021 FY 2026-05-31 10-K true 2021-05-31 false 0-3498 TAYLOR DEVICES INC NY 16-0797789 90 Taylor Drive North Tonawanda NY 14120 716 694-0800 Common Stock ($.025 par value) No No Yes Yes Non-accelerated Filer true false false 36765000 3496765 20581604 15159827 1097012 1071950 4120564 5819471 5835596 10107437 522747 460212 454778 50148 1499604 1754573 34111905 34423618 1612839 879050 9816594 9407490 200538 195621 190115 170115 45931991 45075894 1461500 1787325 1370175 269064 305885 1715409 1663914 1361985 736866 5133783 5538340 0.025 0.025 8000000 8000000 4055275 4040805 101305 100943 10010430 9759063 33601475 32538580 43713210 42398586 558834 553934 2915002 2861032 40798208 39537554 45931991 45075894 22509641 28381541 19334950 19144451 3174691 9237090 5526774 5934410 -2352083 3302680 53654 111054 1461500 1510131 8693 2242 3033978 113296 681895 3415976 -381000 386000 1062895 3029976 0.30 0.87 100943 100735 37 34 325 174 101305 100943 9759063 9538892 14954 13824 82070 63250 154343 143097 10010430 9759063 32538580 29508604 1062895 3029976 33601475 32538580 -2861032 -2829359 -53970 -31673 -2915002 -2861032 40798208 39537554 1062895 3029976 1212713 1141110 154343 143097 134000 1500000 180000 -20000 19000 1461500 1564907 -540169 2038052 804721 -62535 -148052 -404630 186869 254969 5817917 417150 -32517 -36821 -1003473 51495 131644 625119 103163 7030157 9833286 1621817 1231158 25062 16359 4917 4872 -1651796 -1252389 1461500 43416 45608 43416 1507108 5421777 10088005 15159827 5071822 20581604 15159827 <p id="xdx_801_eus-gaap--SignificantAccountingPoliciesTextBlock_z7HuOwHx7rz1" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>1. Summary of Significant Accounting Policies:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_843_eus-gaap--NatureOfOperations_zO4Zu8MJh0yf" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Nature of Operations:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_907_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_c20200601__20210531_zQsgMOR8tzhh" title="Percentage of total sales during a period to domestic customers">68</span>% of the Company's 2021 revenue was generated from sales to customers in the United States and <span id="xdx_90E_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries_c20200601__20210531_zk8hjQueaulk" title="Percentage of total sales during a period to export customers">20</span>% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_90F_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_c20190601__20200531_z9LuBBfHasgh">83</span>% of the Company's 2020 revenue was generated from sales to customers in the United States and <span id="xdx_905_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries_c20190601__20200531_z2nV0TT8Dtx6">11</span>% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.</p> <p id="xdx_853_z3ND1UUQJkAk" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_842_eus-gaap--ConsolidationPolicyTextBlock_zRSZJm7bYad" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Principles of Consolidation:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-weight: normal">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.</span></p> <p id="xdx_85C_zQjFuo7FcvSh" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p id="xdx_841_eus-gaap--SubsequentEventsPolicyPolicyTextBlock_zuui0UvKpHPh" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Subsequent Events:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</p> <p id="xdx_856_znKx3e4G7ee2" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p id="xdx_84E_eus-gaap--UseOfEstimates_zusMFmC2rp2a" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Use of Estimates:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.</p> <p id="xdx_85A_zIsWIkAmqBol" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_846_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_znuCm6CE5Y45" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Cash and Cash Equivalents:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p> <p id="xdx_858_zw03Hv9fv635" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_84E_eus-gaap--MarketableSecuritiesPolicy_zw84qFprPJ77" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Short-term Investments:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2021 and May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (16) mature on various dates during the period August 2021 to September 2025. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p> <p id="xdx_852_zZ4tX3WkFNCh" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_84A_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zzgWhOUNsvei" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Accounts and Other Receivables:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p> <p id="xdx_858_zogr6V2mWBva" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_842_eus-gaap--InventoryPolicyTextBlock_z6tLrMggJMt" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Inventory:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p> <p id="xdx_858_zPxghnKASRWe" style="font: bold 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"> </p> <p id="xdx_846_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zme4RySWcmU7" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Property and Equipment:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Property and equipment is stated at cost net of accumulated depreciation. Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</p> <p id="xdx_853_zBRcJZ6lsyB3" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p id="xdx_847_eus-gaap--LifeInsuranceCorporateOrBankOwnedTextBlock_zNatJArqk6Ol" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Cash Value of Life Insurance:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash value of life insurance is stated at the surrender value of the contracts.</p> <p id="xdx_85F_zk5CGfcOXIz" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_84A_eus-gaap--RevenueRecognitionPolicyTextBlock_zZ59Fns3sW37" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Revenue Recognition:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">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. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2021, <span id="xdx_90C_ecustom--RevenueRecognitionOverTimePercentOfTotal_c20200601__20210531_zyNPdvBwq7o8" title="Percent of revenue recognized with sales contracts for which revenue is recognized over time">43</span>% of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_904_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_c20200601__20210531_z1gcNSO6HAWg" title="Percent of revenue recognized with sales contracts containing a single performance obligation">57</span>% was recognized at a point in time. In the year ended May 31, 2020, <span id="xdx_903_ecustom--RevenueRecognitionOverTimePercentOfTotal_c20190601__20200531_zYqKZXvKAqF8">57</span>% of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_90A_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_c20190601__20200531_z8WEKuKsRtT4">43</span>% was recognized at a point in time.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 0pt; text-align: justify">If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2021 and 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p> <p id="xdx_856_znki6MzZQhId" style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 0pt; text-align: justify"> </p> <p id="xdx_842_eus-gaap--ShippingAndHandlingCostPolicyTextBlock_z7VonbY1Uep4" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Shipping and Handling Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $<span id="xdx_901_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20200601__20210531_zRncVdNWncu6" title="Shipping and handling costs">146,878</span> and $<span id="xdx_902_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20190601__20200531_ziYdC7Co92y6">420,786</span> for the years ended May 31, 2021 and 2020. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p> <p id="xdx_850_z8MTcNoPQGh9" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_849_eus-gaap--ResearchAndDevelopmentExpensePolicy_zWGGOEcSiRn8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Research and Development Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Research and development costs are classified as a component of cost of sales. The amounts of these costs were $<span id="xdx_907_eus-gaap--ResearchAndDevelopmentExpense_c20200601__20210531_zLsUEbstugze" title="Research and development costs">924,000</span> and $<span id="xdx_90E_eus-gaap--ResearchAndDevelopmentExpense_c20190601__20200531_z45Sjk4axfCe">585,000</span> for the years ended May 31, 2021 and 2020.</p> <p id="xdx_85E_zi3b89OGv2l4" style="font: 10pt Times New Roman, Times, Serif; margin: 0"><b> </b></p> <p id="xdx_841_eus-gaap--RegulatoryIncomeTaxesPolicy_zXIkgpLaMi0a" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Income Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2021 or 2020. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2021 and 2020. </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2018.</span></p> <p id="xdx_852_zxqjyCFWfOg3" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p id="xdx_846_eus-gaap--OtherLiabilitiesDisclosureTextBlock_zrCOwHlkfSOj" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Sales Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.</p> <p id="xdx_854_zPs20YazztMi" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"><b> </b></span></p> <p id="xdx_841_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zbKBYhdsvTPa" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"><b>Stock-Based Compensation:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. <span style="letter-spacing: -0.15pt">The stock-based compensation expense for the years ended May 31, 2021 and 2020 was $<span id="xdx_905_eus-gaap--ShareBasedCompensation_c20200601__20210531_zHZdyQJR0Hk4" title="Share based compensation expense">154,343</span> and $<span id="xdx_908_eus-gaap--ShareBasedCompensation_c20190601__20200531_zV2MbtnHo0l8">143,097</span>.</span></p> <p id="xdx_853_zHde1OCGHzC2" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_847_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zLdEYvMbCkB3" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"><b>New Accounting Standards:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.</p> <p id="xdx_851_z2GbUrFMXDK8" style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p id="xdx_843_eus-gaap--NatureOfOperations_zO4Zu8MJh0yf" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Nature of Operations:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_907_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_c20200601__20210531_zQsgMOR8tzhh" title="Percentage of total sales during a period to domestic customers">68</span>% of the Company's 2021 revenue was generated from sales to customers in the United States and <span id="xdx_90E_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries_c20200601__20210531_zk8hjQueaulk" title="Percentage of total sales during a period to export customers">20</span>% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_90F_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_c20190601__20200531_z9LuBBfHasgh">83</span>% of the Company's 2020 revenue was generated from sales to customers in the United States and <span id="xdx_905_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries_c20190601__20200531_z2nV0TT8Dtx6">11</span>% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.</p> 68 20 83 11 <p id="xdx_842_eus-gaap--ConsolidationPolicyTextBlock_zRSZJm7bYad" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Principles of Consolidation:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-weight: normal">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.</span></p> <p id="xdx_841_eus-gaap--SubsequentEventsPolicyPolicyTextBlock_zuui0UvKpHPh" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Subsequent Events:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</p> <p id="xdx_84E_eus-gaap--UseOfEstimates_zusMFmC2rp2a" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Use of Estimates:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.</p> <p id="xdx_846_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_znuCm6CE5Y45" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Cash and Cash Equivalents:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p> <p id="xdx_84E_eus-gaap--MarketableSecuritiesPolicy_zw84qFprPJ77" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Short-term Investments:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2021 and May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (16) mature on various dates during the period August 2021 to September 2025. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p> <p id="xdx_84A_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zzgWhOUNsvei" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Accounts and Other Receivables:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p> <p id="xdx_842_eus-gaap--InventoryPolicyTextBlock_z6tLrMggJMt" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Inventory:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p> <p id="xdx_846_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zme4RySWcmU7" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Property and Equipment:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Property and equipment is stated at cost net of accumulated depreciation. Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</p> <p id="xdx_847_eus-gaap--LifeInsuranceCorporateOrBankOwnedTextBlock_zNatJArqk6Ol" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Cash Value of Life Insurance:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash value of life insurance is stated at the surrender value of the contracts.</p> <p id="xdx_84A_eus-gaap--RevenueRecognitionPolicyTextBlock_zZ59Fns3sW37" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Revenue Recognition:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">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. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2021, <span id="xdx_90C_ecustom--RevenueRecognitionOverTimePercentOfTotal_c20200601__20210531_zyNPdvBwq7o8" title="Percent of revenue recognized with sales contracts for which revenue is recognized over time">43</span>% of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_904_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_c20200601__20210531_z1gcNSO6HAWg" title="Percent of revenue recognized with sales contracts containing a single performance obligation">57</span>% was recognized at a point in time. In the year ended May 31, 2020, <span id="xdx_903_ecustom--RevenueRecognitionOverTimePercentOfTotal_c20190601__20200531_zYqKZXvKAqF8">57</span>% of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_90A_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_c20190601__20200531_z8WEKuKsRtT4">43</span>% was recognized at a point in time.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 0pt; text-align: justify">If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2021 and 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p> 43 57 57 43 <p id="xdx_842_eus-gaap--ShippingAndHandlingCostPolicyTextBlock_z7VonbY1Uep4" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Shipping and Handling Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $<span id="xdx_901_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20200601__20210531_zRncVdNWncu6" title="Shipping and handling costs">146,878</span> and $<span id="xdx_902_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20190601__20200531_ziYdC7Co92y6">420,786</span> for the years ended May 31, 2021 and 2020. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p> 146878 420786 <p id="xdx_849_eus-gaap--ResearchAndDevelopmentExpensePolicy_zWGGOEcSiRn8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Research and Development Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Research and development costs are classified as a component of cost of sales. The amounts of these costs were $<span id="xdx_907_eus-gaap--ResearchAndDevelopmentExpense_c20200601__20210531_zLsUEbstugze" title="Research and development costs">924,000</span> and $<span id="xdx_90E_eus-gaap--ResearchAndDevelopmentExpense_c20190601__20200531_z45Sjk4axfCe">585,000</span> for the years ended May 31, 2021 and 2020.</p> 924000 585000 <p id="xdx_841_eus-gaap--RegulatoryIncomeTaxesPolicy_zXIkgpLaMi0a" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Income Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2021 or 2020. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2021 and 2020. </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2018.</span></p> <p id="xdx_846_eus-gaap--OtherLiabilitiesDisclosureTextBlock_zrCOwHlkfSOj" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>Sales Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.</p> <p id="xdx_841_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zbKBYhdsvTPa" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"><b>Stock-Based Compensation:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. <span style="letter-spacing: -0.15pt">The stock-based compensation expense for the years ended May 31, 2021 and 2020 was $<span id="xdx_905_eus-gaap--ShareBasedCompensation_c20200601__20210531_zHZdyQJR0Hk4" title="Share based compensation expense">154,343</span> and $<span id="xdx_908_eus-gaap--ShareBasedCompensation_c20190601__20200531_zV2MbtnHo0l8">143,097</span>.</span></p> 154343 143097 <p id="xdx_847_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zLdEYvMbCkB3" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><span style="letter-spacing: -0.15pt"><b>New Accounting Standards:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.</p> <p id="xdx_803_eus-gaap--LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_zHPqMpVQudbd" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>2. Accounts and Other Receivables:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <table cellpadding="0" cellspacing="0" id="xdx_88C_eus-gaap--ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_zx2mCLkWo3y5" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Accounts receivable table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49D_20210531_zMonXsIB2bte" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20200531_zAnNpjml1R4d" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_401_eus-gaap--ReceivablesFromCustomers_iI_maARGCzeMD_zlfvyUmSs679" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Customers</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,184,970</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">5,399,915</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_403_eus-gaap--ContractReceivableRetainageDueOneYearOrLess_iI_maARGCzeMD_z9I9xHWSfBbl" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Customers – retention</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">200,956</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">630,823</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--AccountsReceivableGrossCurrent_iTI_mtARGCzeMD_maARNCz7fs_zCoI05RDEOH8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross accounts receivable</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">3,385,926</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">6,030,738</td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--AllowanceForDoubtfulAccountsReceivable_iI_msARNCz7fs_zIuK1CpW8tGb" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Less Allowance for doubtful accounts</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">6,781</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">211,267</td><td style="text-align: left"> </td></tr> <tr id="xdx_404_ecustom--OtherReceivableEmployeeRetentionCredit_iI_maARNCz7fs_zL9vs03SdCI3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Add Other receivables</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">741,419</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0384">—</span>  </td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--AccountsReceivableNetCurrent_iTI_mtARNCz7fs_zek9rd0V9oRa" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net accounts receivable</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">4,120,564</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">5,819,471</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Retention receivable from customers represents amounts invoiced to customers where payments have been partially withheld pending completion of the project. All amounts are expected to be collected within the next fiscal year.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Other receivable is an amount of Employee Retention Credit claimed by the Company for the second calendar quarter of 2021 and is expected to be received in the third calendar quarter of 2021.</p> <table cellpadding="0" cellspacing="0" id="xdx_88C_eus-gaap--ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_zx2mCLkWo3y5" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Accounts receivable table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49D_20210531_zMonXsIB2bte" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20200531_zAnNpjml1R4d" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_401_eus-gaap--ReceivablesFromCustomers_iI_maARGCzeMD_zlfvyUmSs679" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Customers</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,184,970</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">5,399,915</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_403_eus-gaap--ContractReceivableRetainageDueOneYearOrLess_iI_maARGCzeMD_z9I9xHWSfBbl" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Customers – retention</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">200,956</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">630,823</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--AccountsReceivableGrossCurrent_iTI_mtARGCzeMD_maARNCz7fs_zCoI05RDEOH8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross accounts receivable</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">3,385,926</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">6,030,738</td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--AllowanceForDoubtfulAccountsReceivable_iI_msARNCz7fs_zIuK1CpW8tGb" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Less Allowance for doubtful accounts</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">6,781</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">211,267</td><td style="text-align: left"> </td></tr> <tr id="xdx_404_ecustom--OtherReceivableEmployeeRetentionCredit_iI_maARNCz7fs_zL9vs03SdCI3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Add Other receivables</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">741,419</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0384">—</span>  </td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--AccountsReceivableNetCurrent_iTI_mtARNCz7fs_zek9rd0V9oRa" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net accounts receivable</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">4,120,564</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">5,819,471</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 3184970 5399915 200956 630823 3385926 6030738 6781 211267 741419 4120564 5819471 <p id="xdx_80F_eus-gaap--InventoryDisclosureTextBlock_zTbTDi8vcxN9" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>3. Inventory: </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <table cellpadding="0" cellspacing="0" id="xdx_880_eus-gaap--ScheduleOfInventoryCurrentTableTextBlock_zr9DYOdHsd5j" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20210531_z0RBKzZMr2h5" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20200531_zsdc2N5hDTqb" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_403_eus-gaap--InventoryRawMaterials_iI_maIGzj8s_z2TkJb56TCff" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Raw materials</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">503,344</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">658,024</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--InventoryWorkInProcess_iI_maIGzj8s_zslnnQ2tWgy4" style="vertical-align: bottom; background-color: White"> <td>Work-in-process</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">5,076,377</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">8,586,404</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--InventoryFinishedGoods_iI_maIGzj8s_zuhDOQxkFDea" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Finished goods</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">355,875</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">963,009</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--InventoryGross_iTI_mtIGzj8s_maINzh6C_z7kmWmhRkNjc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left"><b style="display: none">Gross inventory</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">5,935,596</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">10,207,437</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--InventoryValuationReserves_iI_msINzh6C_zVN2rkCMPQK2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--InventoryNet_iTI_mtINzh6C_zzfRukjUyhbb" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net inventory</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">5,835,596</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">10,107,437</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> <table cellpadding="0" cellspacing="0" id="xdx_880_eus-gaap--ScheduleOfInventoryCurrentTableTextBlock_zr9DYOdHsd5j" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20210531_z0RBKzZMr2h5" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20200531_zsdc2N5hDTqb" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_403_eus-gaap--InventoryRawMaterials_iI_maIGzj8s_z2TkJb56TCff" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Raw materials</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">503,344</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">658,024</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--InventoryWorkInProcess_iI_maIGzj8s_zslnnQ2tWgy4" style="vertical-align: bottom; background-color: White"> <td>Work-in-process</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">5,076,377</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">8,586,404</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--InventoryFinishedGoods_iI_maIGzj8s_zuhDOQxkFDea" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Finished goods</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">355,875</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">963,009</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--InventoryGross_iTI_mtIGzj8s_maINzh6C_z7kmWmhRkNjc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left"><b style="display: none">Gross inventory</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">5,935,596</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">10,207,437</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--InventoryValuationReserves_iI_msINzh6C_zVN2rkCMPQK2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--InventoryNet_iTI_mtINzh6C_zzfRukjUyhbb" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net inventory</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">5,835,596</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">10,107,437</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> 503344 658024 5076377 8586404 355875 963009 5935596 10207437 100000 100000 5835596 10107437 <p id="xdx_800_eus-gaap--DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_z8HZv0LQAeWj" style="font: bold 10pt Times New Roman, Times, Serif; margin: 0; color: navy">4. Costs and Estimated Earnings on Uncompleted Contracts:</p> <p style="font: bold 10pt Times New Roman, Times, Serif; margin: 0; color: navy"> </p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--LongTermContractsOrProgramsDisclosureTextBlock_zhH0l1A0Ol45" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49D_20210531_zc28b0lV5tge" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_znQZrNgN4rTb" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40F_eus-gaap--InventoryForLongTermContractsOrPrograms_iI_maCAEEOzs0q_zoErZVtbduqa" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs incurred on uncompleted contracts</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,372,276</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">6,395,550</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40D_ecustom--EstimatedEarningsOnUncompletedContractsOrPrograms_iI_maCAEEOzs0q_zHpN3yoeNSFe" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">778,011</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">3,816,527</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_402_ecustom--CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms_iTI_mtCAEEOzs0q_maCIEOBzSg5_zI1TktnhUE94" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify"><b style="display: none">Total costs and estimated earnings</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">4,150,287</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">10,212,077</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_405_ecustom--BillingsOnUncompletedContractsOrPrograms_iI_msCIEOBzSg5_z43yG5zmjjsg" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less billings to date</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">4,012,668</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">9,194,370</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40C_ecustom--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYearNet_iTI_mtCIEOBzSg5_z5bWd2pkdGyg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Costs and estimated earnings not billed</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">137,619</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Amounts are included in the accompanying balance sheets under the following captions:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_88E_ecustom--LongTermContractsDisclosureTableTextBlock_zWBEBZWiZl3c" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_497_20210531_zxcgMtlDTuil" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_zAlNbaeoFC5e" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40B_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_maCIEOBztvg_zhQsK3UzoyWd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs and estimated earnings in excess of billings</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1,499,604</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">1,754,573</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--BillingsInExcessOfCostCurrent_iI_msCIEOBztvg_z3aeyRrQZSy6" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Billings in excess of costs and estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,361,985</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">736,866</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear_iTI_mtCIEOBztvg_zpyX3F5exXo4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">Costs and estimated earnings not billed</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">137,619</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following summarizes the status of Projects in progress as of May 31, 2021 and 2020:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_882_ecustom--LongTermContractsDisclosureTwoTableTextBlock_zqCTUIFyVb2l" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: right"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_491_20210531_zLIpxQ9tWIw4" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_492_20200531_zXKu6CFj3P48" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40E_ecustom--QuantityOfUncompletedProjectsOrProgramsInProgress_iI_z1fjlRXRYux" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: right; padding-left: 5.4pt">Number of Projects in progress</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">14</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">15</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40D_ecustom--AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress_iI_zFttaxfyQNUi" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Aggregate percent complete</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">32</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">80</td><td style="text-align: left">%</td></tr> <tr id="xdx_40F_ecustom--AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress_iI_zyHI73C3YSk6" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: right; padding-left: 5.4pt">Aggregate amount remaining</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left">$</td><td style="color: navy; font-weight: bold; text-align: right">9,333,701</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">2,234,962</td><td style="text-align: left"> </td></tr> <tr id="xdx_409_ecustom--PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer_iI_zuIH4gTF9WB1" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Percentage of total value invoiced to customer</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">30</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">74</td><td style="text-align: left">%</td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company expects to recognize the entire remaining revenue on all open projects during the May 31, 2022 fiscal year.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Revenue recognized during the years ended May 31, 2021 and 2020 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $<span id="xdx_905_ecustom--AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings_c20200601__20210531_zI8EfCqlsz9g" title="Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year">736,866</span> and $<span id="xdx_90D_ecustom--AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings_c20190601__20200531_zyqrvujArdTf">633,703</span>.</p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--LongTermContractsOrProgramsDisclosureTextBlock_zhH0l1A0Ol45" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49D_20210531_zc28b0lV5tge" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_znQZrNgN4rTb" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40F_eus-gaap--InventoryForLongTermContractsOrPrograms_iI_maCAEEOzs0q_zoErZVtbduqa" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs incurred on uncompleted contracts</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,372,276</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">6,395,550</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40D_ecustom--EstimatedEarningsOnUncompletedContractsOrPrograms_iI_maCAEEOzs0q_zHpN3yoeNSFe" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">778,011</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">3,816,527</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_402_ecustom--CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms_iTI_mtCAEEOzs0q_maCIEOBzSg5_zI1TktnhUE94" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify"><b style="display: none">Total costs and estimated earnings</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">4,150,287</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">10,212,077</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_405_ecustom--BillingsOnUncompletedContractsOrPrograms_iI_msCIEOBzSg5_z43yG5zmjjsg" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less billings to date</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">4,012,668</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">9,194,370</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40C_ecustom--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYearNet_iTI_mtCIEOBzSg5_z5bWd2pkdGyg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Costs and estimated earnings not billed</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">137,619</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> 3372276 6395550 778011 3816527 4150287 10212077 4012668 9194370 137619 1017707 <table cellpadding="0" cellspacing="0" id="xdx_88E_ecustom--LongTermContractsDisclosureTableTextBlock_zWBEBZWiZl3c" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_497_20210531_zxcgMtlDTuil" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_zAlNbaeoFC5e" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40B_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_maCIEOBztvg_zhQsK3UzoyWd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs and estimated earnings in excess of billings</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1,499,604</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">1,754,573</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--BillingsInExcessOfCostCurrent_iI_msCIEOBztvg_z3aeyRrQZSy6" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Billings in excess of costs and estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,361,985</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">736,866</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear_iTI_mtCIEOBztvg_zpyX3F5exXo4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">Costs and estimated earnings not billed</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">137,619</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 1499604 1754573 1361985 736866 137619 1017707 <table cellpadding="0" cellspacing="0" id="xdx_882_ecustom--LongTermContractsDisclosureTwoTableTextBlock_zqCTUIFyVb2l" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: right"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_491_20210531_zLIpxQ9tWIw4" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_492_20200531_zXKu6CFj3P48" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40E_ecustom--QuantityOfUncompletedProjectsOrProgramsInProgress_iI_z1fjlRXRYux" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: right; padding-left: 5.4pt">Number of Projects in progress</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">14</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">15</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40D_ecustom--AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress_iI_zFttaxfyQNUi" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Aggregate percent complete</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">32</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">80</td><td style="text-align: left">%</td></tr> <tr id="xdx_40F_ecustom--AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress_iI_zyHI73C3YSk6" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: right; padding-left: 5.4pt">Aggregate amount remaining</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left">$</td><td style="color: navy; font-weight: bold; text-align: right">9,333,701</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">2,234,962</td><td style="text-align: left"> </td></tr> <tr id="xdx_409_ecustom--PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer_iI_zuIH4gTF9WB1" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Percentage of total value invoiced to customer</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">30</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">74</td><td style="text-align: left">%</td></tr> </table> 14 15 0.32 0.80 9333701 2234962 0.30 0.74 736866 633703 <p id="xdx_80C_eus-gaap--OtherAssetsDisclosureTextBlock_zWYnsnstJTk3" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>5. Maintenance and Other Inventory:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfInventoryNoncurrentTableTextBlock_zqLeNiQB2Hr7" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Maintenance and other inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20210531_zKYnr1V8T9eh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_zDMORcNmS8nl" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_407_eus-gaap--OtherInventoryNoncurrent_iI_zZnUNRhv6QQf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Maintenance and other inventory</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,612,000</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">2,479,497</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_403_ecustom--InventoryValuationReserveNoncurrent_iNI_di_maOINzlPs_zuHsnqMofMxe" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,999,161</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">1,600,447</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--InventoryNoncurrent_iI_zn82yDCGhldd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt"><b style="display: none">Maintenance and other inventory, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,612,839</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">879,050</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">During fiscal 2021, the Company began a thorough review of the facilities including the flow of inventory through the factory and warehouse areas to determine the most efficient utilization of available space. Inventory purchasing practices and stocking levels were also evaluated and it was determined that a significant portion of the older items would be disposed of while the allowance for potential inventory obsolescence would be increased as more items are identified for disposal. $1,101,000 of inventory was disposed of during the year. The provision for potential inventory obsolescence was $<span id="xdx_905_eus-gaap--InventoryWriteDown_c20200601__20210531_zLwtnVQN6Pa3" title="Provision for potentially obsolete inventory">1,500,000</span> and $<span id="xdx_90E_eus-gaap--InventoryWriteDown_c20190601__20200531_zaUukRfF0AKh">180,000</span> for the years ended May 31, 2021 and 2020.</p> <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfInventoryNoncurrentTableTextBlock_zqLeNiQB2Hr7" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Maintenance and other inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20210531_zKYnr1V8T9eh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_zDMORcNmS8nl" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_407_eus-gaap--OtherInventoryNoncurrent_iI_zZnUNRhv6QQf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Maintenance and other inventory</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,612,000</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">2,479,497</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_403_ecustom--InventoryValuationReserveNoncurrent_iNI_di_maOINzlPs_zuHsnqMofMxe" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,999,161</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">1,600,447</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--InventoryNoncurrent_iI_zn82yDCGhldd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt"><b style="display: none">Maintenance and other inventory, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,612,839</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">879,050</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> 3612000 2479497 -1999161 -1600447 1612839 879050 1500000 180000 <p id="xdx_808_eus-gaap--PropertyPlantAndEquipmentDisclosureTextBlock_zf7xmQqY0TEk" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>6. Property and Equipment:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--PropertyPlantAndEquipmentTextBlock_zAu5wt5gSC8e" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Property and equipment table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20210531_zdaibRsQmrg1" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20200531_zKdT4dfbdZFj" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_405_eus-gaap--Land_iI_maPPAEGzvkg_zrX2Ipecsoj5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Land</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">195,220</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">195,220</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_405_eus-gaap--BuildingsAndImprovementsGross_iI_maPPAEGzvkg_zKa3CghpgvAl" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Buildings and improvements</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">9,584,087</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">9,457,142</td><td style="text-align: left"> </td></tr> <tr id="xdx_403_eus-gaap--MachineryAndEquipmentGross_iI_maPPAEGzvkg_zhWj0UcQkca5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Machinery and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">12,366,569</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">11,242,667</td><td style="text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--FurnitureAndFixturesGross_iI_maPPAEGzvkg_zQUJMiIkaC13" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Office furniture and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">2,536,688</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">2,209,382</td><td style="text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--PropertyPlantAndEquipmentOther_iI_maPPAEGzvkg_zZOB21iC3dkl" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Autos and trucks</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">24,818</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">24,818</td><td style="text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--LandImprovements_iI_maPPAEGzvkg_zgnxISLdYHo8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Land improvements</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">476,429</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">455,429</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--PropertyPlantAndEquipmentGross_iTI_mtPPAEGzvkg_maPPAENzxof_zhdmMjhiqjT2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross property and equipment</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">25,183,811</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">23,584,658</td><td style="text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_iI_msPPAENzxof_zJ9Jlfd8TfCg" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less accumulated depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">15,367,217</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">14,177,168</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--PropertyPlantAndEquipmentNet_iTI_mtPPAENzxof_zXQu1WKWg1yd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Property and equipment, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">9,816,594</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">9,407,490</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Depreciation expense was $<span id="xdx_90D_eus-gaap--Depreciation_c20200601__20210531_zI4ntQGLz5jc" title="Depreciation">1,212,713</span> and $<span id="xdx_90A_eus-gaap--Depreciation_c20190601__20200531_zDv511n8hLWf">1,141,110</span> for the years ended May 31, 2021 and 2020.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has commitments to make capital expenditures of approximately $<span id="xdx_909_ecustom--CommitmentsForFutureCapitalExpendituresDisclosure_iI_c20210531_zEM4UiJV2P4c">400,000</span> as of May 31, 2021.</p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--PropertyPlantAndEquipmentTextBlock_zAu5wt5gSC8e" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Property and equipment table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20210531_zdaibRsQmrg1" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20200531_zKdT4dfbdZFj" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_405_eus-gaap--Land_iI_maPPAEGzvkg_zrX2Ipecsoj5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Land</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">195,220</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">195,220</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_405_eus-gaap--BuildingsAndImprovementsGross_iI_maPPAEGzvkg_zKa3CghpgvAl" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Buildings and improvements</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">9,584,087</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">9,457,142</td><td style="text-align: left"> </td></tr> <tr id="xdx_403_eus-gaap--MachineryAndEquipmentGross_iI_maPPAEGzvkg_zhWj0UcQkca5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Machinery and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">12,366,569</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">11,242,667</td><td style="text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--FurnitureAndFixturesGross_iI_maPPAEGzvkg_zQUJMiIkaC13" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Office furniture and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">2,536,688</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">2,209,382</td><td style="text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--PropertyPlantAndEquipmentOther_iI_maPPAEGzvkg_zZOB21iC3dkl" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Autos and trucks</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">24,818</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">24,818</td><td style="text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--LandImprovements_iI_maPPAEGzvkg_zgnxISLdYHo8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Land improvements</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">476,429</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">455,429</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--PropertyPlantAndEquipmentGross_iTI_mtPPAEGzvkg_maPPAENzxof_zhdmMjhiqjT2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross property and equipment</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">25,183,811</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">23,584,658</td><td style="text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_iI_msPPAENzxof_zJ9Jlfd8TfCg" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less accumulated depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">15,367,217</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">14,177,168</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--PropertyPlantAndEquipmentNet_iTI_mtPPAENzxof_zXQu1WKWg1yd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Property and equipment, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">9,816,594</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">9,407,490</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 195220 195220 9584087 9457142 12366569 11242667 2536688 2209382 24818 24818 476429 455429 25183811 23584658 15367217 14177168 9816594 9407490 1212713 1141110 400000 <p id="xdx_80E_eus-gaap--ScheduleOfLineOfCreditFacilitiesTextBlock_zJ9dDTxeDIHb" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>7. Short-Term Borrowings:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">During 2020, the Company received a loan totaling $<span id="xdx_90C_eus-gaap--ProceedsFromBankDebt_c20190601__20200531_zDg1PW9xprTe">1,461,500</span> from the Small Business Administration (SBA) under the Paycheck Protection Program (PPP) of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the pandemic described in Note 20. The total amount of the loan was forgiven during fiscal 2021 under provisions of the CARES Act. The amount of the loan forgiveness is included in Other income on the Consolidated Statements of Income.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has available a $<span id="xdx_90D_eus-gaap--LineOfCreditFacilityCurrentBorrowingCapacity_iI_c20210531_zRgByqBhZyM8" title="Current borrowing capacity">10,000,000</span> demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and subject to renewal annually.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">There is <span id="xdx_901_eus-gaap--LineOfCreditFacilityFairValueOfAmountOutstanding_iI_do_c20210531_zclzhQiWrj43"><span id="xdx_90C_eus-gaap--LineOfCreditFacilityFairValueOfAmountOutstanding_iI_do_c20200531_zLd1B3xmDrK6" title="Outstanding balance on line of credit">no</span></span> amount outstanding under the line of credit at May 31, 2021 or May 31, 2020.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. Outstanding checks under this arrangement totaled $<span id="xdx_908_eus-gaap--AccountsPayableOtherCurrent_iI_c20210531_z0KVOS9dM7td" title="Uncleared checks">366,209</span> and $<span id="xdx_90A_eus-gaap--AccountsPayableOtherCurrent_iI_c20200531_zHdSq5jmGl96">523,344</span> as of May 31, 2021 and 2020. These amounts are included in accounts payable.</p> 1461500 10000000 0 0 366209 523344 <p id="xdx_808_eus-gaap--LegalMattersAndContingenciesTextBlock_zq3JGnhR3mKb" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>8. Legal Proceedings: </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">There are no legal proceedings except for routine litigation incidental to the business.</p> <table cellpadding="0" cellspacing="0" id="xdx_883_ecustom--ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock_zBKWEIkXF3ch" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Sales by major customer type (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: center"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20200601__20210531_z40ne1DUXmh9" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20190601__20200531_zPdm63Cq6gnk" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 5.4pt">Structural</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td id="xdx_98F_eus-gaap--Revenues_c20200601__20210531__srt--MajorCustomersAxis__custom--StructuralSeismicWindMember_zYFsnVAqRly" style="width: 12%; color: navy; font-weight: bold; text-align: right" title="Sales, net">10,137,468</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_984_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--StructuralSeismicWindMember_zP8Hq4zbaFk1" style="width: 12%; text-align: right">15,621,784</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 5.4pt">Aerospace / Defense</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--Revenues_c20200601__20210531__srt--MajorCustomersAxis__custom--AerospaceDefenseMember_zS1ZtYnGPM2h" style="color: navy; font-weight: bold; text-align: right" title="Sales, net">10,183,399</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--AerospaceDefenseMember_zfhrnJxE5sdh" style="text-align: right">10,771,129</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt; padding-left: 5.4pt">Industrial</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_980_eus-gaap--Revenues_c20200601__20210531__srt--MajorCustomersAxis__custom--IndustrialMember_zzzqNSR1nHal" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">2,188,774</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_989_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--IndustrialMember_zIBUYSDsPjpc" style="border-bottom: Black 1pt solid; text-align: right">1,988,628</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--Revenues_zxSwXiHAopne" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 5.4pt"><b style="display: none">Sales, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">22,509,641</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">28,381,541</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 10137468 15621784 10183399 10771129 2188774 1988628 22509641 28381541 21 11 10 10 <p id="xdx_803_eus-gaap--IncomeTaxDisclosureTextBlock_zsIl4INF9iE8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>10. Income Taxes:</b></p> <table cellpadding="0" cellspacing="0" id="xdx_886_eus-gaap--ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_zcjW5KM8goy2" style="font: 12pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Income Taxes Table (Details)"> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20200601__20210531_zsB11aqqhwu1" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2021</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20190601__20200531_zuYSGoIUD7kg" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2020</td></tr> <tr id="xdx_408_eus-gaap--IncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zLSAJozJMAf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Current tax provision (benefit):</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--CurrentFederalTaxExpenseBenefit_maCITEBzk5Y_zNYVOfLPx5y7" style="vertical-align: bottom; background-color: White"> <td style="width: 56%; font-size: 10pt; padding-left: 9pt">Federal</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right">(361,000</td><td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="width: 8%; font-size: 10pt; color: windowtext"> </td> <td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: windowtext; text-align: right">375,000</td><td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--CurrentStateAndLocalTaxExpenseBenefit_maCITEBzk5Y_zFpLtFonN0hc" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0555">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0556">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--CurrentIncomeTaxExpenseBenefit_iT_mtCITEBzk5Y_maITEBz6JK_zakujDMFRyAk" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><b style="display: none">Total current tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">(361,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">375,000</td><td style="font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zS8XtlTREBs2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Deferred tax provision (benefit):</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--DeferredFederalIncomeTaxExpenseBenefit_maDITEBzeUx_zYBn3AbHrKZj" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 9pt">Federal</td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">(20,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">11,000</td><td style="font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--DeferredStateAndLocalIncomeTaxExpenseBenefit_maDITEBzeUx_zXVU0Kx2m9Rl" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0567">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0568">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxCreditsAndAdjustments_zOpTs1oWpZw6" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total deferred tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">(20,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">11,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxExpenseBenefit_iT_mtITEBz6JK_zSx1GSCtcaBk" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">(381,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">386,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:</p> <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_z8RjJgBqJit7" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Reconciliation of income tax statutory rate to effective rate (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_496_20200601__20210531_z2Af1PkarsX9" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20190601__20200531_zv5oxEpw9nyf" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40B_eus-gaap--IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_zxU6FfTcZlY8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Computed tax provision at the expected statutory rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">143,200</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">717,400</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxReconciliationStateAndLocalIncomeTaxes_zc1MfjyOTlg4" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">State income tax - net of Federal tax benefit</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0581">—</span>  </td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">500</td><td style="text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_iB_zdXy7oG2KKf8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Tax effect of permanent differences:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--IncomeTaxReconciliationTaxCreditsResearch_zHYKj9O35N7f" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">Research tax credits</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(218,000</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">(272,000</td><td style="text-align: left">)</td></tr> <tr id="xdx_406_eus-gaap--IncomeTaxReconciliationDeductionsQualifiedProductionActivities_z9covdVJY0Bj" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 9pt">Foreign-derived intangible income deduction</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0590">—</span>  </td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">(99,739</td><td style="text-align: left">)</td></tr> <tr id="xdx_409_eus-gaap--IncomeTaxReconciliationNondeductibleExpense_zKKUmZ9gYVU2" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">PPP loan forgiveness</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(306,900</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0594">—</span>  </td><td style="text-align: left"> </td></tr> <tr id="xdx_403_eus-gaap--IncomeTaxReconciliationOtherAdjustments_z5hshwikwpi1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 9pt">Other permanent differences</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">41,500</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">40,200</td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxReconciliationNondeductibleExpenseOther_zt8ldGs1j4I3" style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Other</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(40,800</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">(361</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr> <tr id="xdx_405_eus-gaap--IncomeTaxExpenseBenefit_iT_zxMJ3zjA1jHf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(381,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">386,000</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_zllO1rsKWQQ1" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Effective income tax rate</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(55.9</td><td style="color: navy; font-weight: bold; text-align: left">%)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">11.3</td><td style="text-align: left">%</td></tr> </table> <p style="font: 12pt Times New Roman, Times, Serif; margin: 0"><span style="font-size: 10pt"><br/> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Significant components of the Company's deferred tax assets and liabilities consist of the following:</p> <p style="font: 11pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_88F_eus-gaap--ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_zqabYk84G7q9" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Components of Deferred Tax Assets and Liabilities (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20210531_zzStSF76hvbe" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_493_20200531_zpTQQWLwgDtj" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40F_eus-gaap--DeferredTaxAssetsGrossAbstract_iB_zTzjgpvnxOde" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Deferred tax assets:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_iI_maDTAGz5Bw_zobu0NnJq45f" style="vertical-align: bottom; background-color: White"> <td style="width: 56%; text-align: left; padding-left: 4.5pt">Allowance for doubtful receivables</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1,400</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">44,400</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--DeferredTaxAssetsInventory_iI_maDTAGz5Bw_zRR09QcWZU1d" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Tax inventory adjustment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">22,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">94,000</td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves_iI_maDTAGz5Bw_zTJEb7SJwpfl" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 4.5pt">Allowance for obsolete inventory</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">440,800</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">357,100</td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCompensatedAbsences_iI_maDTAGz5Bw_zqBUvtJjNXF7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Accrued vacation</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">81,400</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">60,500</td><td style="text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_iI_maDTAGz5Bw_zfnppJnxpy42" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 4.5pt">Accrued commissions</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">5,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">3,900</td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_iI_maDTAGz5Bw_zLYAEu8n6Xh5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Warranty reserve</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">23,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">39,400</td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_iI_maDTAGz5Bw_zeY2sa1xiAek" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 4.5pt">Stock options issued for services</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">238,500</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">230,200</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--DeferredTaxAssetsGross_iTI_mtDTAGz5Bw_maDTANzE3m_zb2lCZSJTtPj" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Total deferred tax assets</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">814,800</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">829,500</td><td style="text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--DeferredTaxLiabilitiesAbstract_iB_z2zeLgglcrDd" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Deferred tax liabilities:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--DeferredTaxLiabilitiesPropertyPlantAndEquipment_iNI_di_msDTANzE3m_zKk23qKeZMW5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 4.5pt">Excess tax depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(624,685</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">(659,385</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr> <tr id="xdx_404_eus-gaap--DeferredTaxAssetsNet_iTI_mtDTANzE3m_zYdXOIPSsIN8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 27pt">Net deferred tax assets</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">190,115</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">170,115</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. The Company will need to generate approximately $3.9 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2021 of $<span id="xdx_907_eus-gaap--DeferredTaxAssetsGross_iI_c20210531_zMKL9mrVyxIl">814,800</span>.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2021, the Company had State investment tax credit carryforwards of approximately $<span id="xdx_90C_eus-gaap--DeferredTaxAssetsTaxCreditCarryforwards_iI_c20210531_zkWTQOR2age5" title="State investment tax credit carryforwards">368,000</span> expiring through <span id="xdx_909_eus-gaap--TaxCreditCarryforwardExpirationDate_dxL_c20210601__20260531_zUYWqPHYbDS2" title="::XDX::05-31-2026"><span style="-sec-ix-hidden: xdx2ixbrl0648">May 2026</span></span>.</p> <table cellpadding="0" cellspacing="0" id="xdx_886_eus-gaap--ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_zcjW5KM8goy2" style="font: 12pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Income Taxes Table (Details)"> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20200601__20210531_zsB11aqqhwu1" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2021</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20190601__20200531_zuYSGoIUD7kg" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2020</td></tr> <tr id="xdx_408_eus-gaap--IncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zLSAJozJMAf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Current tax provision (benefit):</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--CurrentFederalTaxExpenseBenefit_maCITEBzk5Y_zNYVOfLPx5y7" style="vertical-align: bottom; background-color: White"> <td style="width: 56%; font-size: 10pt; padding-left: 9pt">Federal</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right">(361,000</td><td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="width: 8%; font-size: 10pt; color: windowtext"> </td> <td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: windowtext; text-align: right">375,000</td><td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--CurrentStateAndLocalTaxExpenseBenefit_maCITEBzk5Y_zFpLtFonN0hc" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0555">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0556">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--CurrentIncomeTaxExpenseBenefit_iT_mtCITEBzk5Y_maITEBz6JK_zakujDMFRyAk" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><b style="display: none">Total current tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">(361,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">375,000</td><td style="font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zS8XtlTREBs2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Deferred tax provision (benefit):</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--DeferredFederalIncomeTaxExpenseBenefit_maDITEBzeUx_zYBn3AbHrKZj" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 9pt">Federal</td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">(20,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">11,000</td><td style="font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--DeferredStateAndLocalIncomeTaxExpenseBenefit_maDITEBzeUx_zXVU0Kx2m9Rl" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0567">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0568">—</span>  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxCreditsAndAdjustments_zOpTs1oWpZw6" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total deferred tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">(20,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">11,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxExpenseBenefit_iT_mtITEBz6JK_zSx1GSCtcaBk" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">(381,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left">)</td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">386,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> </table> -361000 375000 -361000 375000 -20000 11000 -20000 11000 -381000 386000 <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_z8RjJgBqJit7" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Reconciliation of income tax statutory rate to effective rate (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_496_20200601__20210531_z2Af1PkarsX9" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20190601__20200531_zv5oxEpw9nyf" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40B_eus-gaap--IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_zxU6FfTcZlY8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Computed tax provision at the expected statutory rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">143,200</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">717,400</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxReconciliationStateAndLocalIncomeTaxes_zc1MfjyOTlg4" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">State income tax - net of Federal tax benefit</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0581">—</span>  </td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">500</td><td style="text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_iB_zdXy7oG2KKf8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Tax effect of permanent differences:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--IncomeTaxReconciliationTaxCreditsResearch_zHYKj9O35N7f" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">Research tax credits</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(218,000</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">(272,000</td><td style="text-align: left">)</td></tr> <tr id="xdx_406_eus-gaap--IncomeTaxReconciliationDeductionsQualifiedProductionActivities_z9covdVJY0Bj" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 9pt">Foreign-derived intangible income deduction</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0590">—</span>  </td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">(99,739</td><td style="text-align: left">)</td></tr> <tr id="xdx_409_eus-gaap--IncomeTaxReconciliationNondeductibleExpense_zKKUmZ9gYVU2" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">PPP loan forgiveness</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(306,900</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0594">—</span>  </td><td style="text-align: left"> </td></tr> <tr id="xdx_403_eus-gaap--IncomeTaxReconciliationOtherAdjustments_z5hshwikwpi1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 9pt">Other permanent differences</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">41,500</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">40,200</td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxReconciliationNondeductibleExpenseOther_zt8ldGs1j4I3" style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Other</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(40,800</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">(361</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr> <tr id="xdx_405_eus-gaap--IncomeTaxExpenseBenefit_iT_zxMJ3zjA1jHf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(381,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">386,000</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_zllO1rsKWQQ1" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Effective income tax rate</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(55.9</td><td style="color: navy; font-weight: bold; text-align: left">%)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">11.3</td><td style="text-align: left">%</td></tr> </table> 143200 717400 500 -218000 -272000 -99739 -306900 41500 40200 -40800 -361 -381000 386000 -0.559 0.113 <table cellpadding="0" cellspacing="0" id="xdx_88F_eus-gaap--ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_zqabYk84G7q9" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Components of Deferred Tax Assets and Liabilities (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20210531_zzStSF76hvbe" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_493_20200531_zpTQQWLwgDtj" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40F_eus-gaap--DeferredTaxAssetsGrossAbstract_iB_zTzjgpvnxOde" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Deferred tax assets:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_iI_maDTAGz5Bw_zobu0NnJq45f" style="vertical-align: bottom; background-color: White"> <td style="width: 56%; text-align: left; padding-left: 4.5pt">Allowance for doubtful receivables</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1,400</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">44,400</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--DeferredTaxAssetsInventory_iI_maDTAGz5Bw_zRR09QcWZU1d" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Tax inventory adjustment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">22,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">94,000</td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves_iI_maDTAGz5Bw_zTJEb7SJwpfl" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 4.5pt">Allowance for obsolete inventory</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">440,800</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">357,100</td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCompensatedAbsences_iI_maDTAGz5Bw_zqBUvtJjNXF7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Accrued vacation</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">81,400</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">60,500</td><td style="text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_iI_maDTAGz5Bw_zfnppJnxpy42" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 4.5pt">Accrued commissions</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">5,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">3,900</td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_iI_maDTAGz5Bw_zLYAEu8n6Xh5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Warranty reserve</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">23,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">39,400</td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_iI_maDTAGz5Bw_zeY2sa1xiAek" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 4.5pt">Stock options issued for services</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">238,500</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">230,200</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--DeferredTaxAssetsGross_iTI_mtDTAGz5Bw_maDTANzE3m_zb2lCZSJTtPj" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Total deferred tax assets</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">814,800</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">829,500</td><td style="text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--DeferredTaxLiabilitiesAbstract_iB_z2zeLgglcrDd" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Deferred tax liabilities:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--DeferredTaxLiabilitiesPropertyPlantAndEquipment_iNI_di_msDTANzE3m_zKk23qKeZMW5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 4.5pt">Excess tax depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(624,685</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">(659,385</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr> <tr id="xdx_404_eus-gaap--DeferredTaxAssetsNet_iTI_mtDTANzE3m_zYdXOIPSsIN8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 27pt">Net deferred tax assets</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">190,115</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">170,115</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 1400 44400 22900 94000 440800 357100 81400 60500 5900 3900 23900 39400 238500 230200 814800 829500 624685 659385 190115 170115 814800 368000 <p id="xdx_802_eus-gaap--EarningsPerShareTextBlock_zzLL3KhHfdM7" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>11. Earnings Per Common Share: </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_880_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zoH7LFR1GW6i" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Earnings per common share table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20200601__20210531_z34R29IeIyfi" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190601__20200531_zR8Azl2MD1N8" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40B_eus-gaap--WeightedAverageNumberOfSharesOutstandingBasic_maNote11EPS_zlFBJHr667hd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 6.2pt">Average common shares outstanding</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,490,213</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">3,481,128</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_maNote11EPS_zesj6nQxoImh" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Common shares issuable under stock option plans</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,674</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">8,663</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_iT_mtNote11EPS_zX5tiRYE1yw8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Average common shares outstanding assuming dilution</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">3,491,887</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">3,489,791</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <table cellpadding="0" cellspacing="0" id="xdx_880_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zoH7LFR1GW6i" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Earnings per common share table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20200601__20210531_z34R29IeIyfi" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190601__20200531_zR8Azl2MD1N8" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_40B_eus-gaap--WeightedAverageNumberOfSharesOutstandingBasic_maNote11EPS_zlFBJHr667hd" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 6.2pt">Average common shares outstanding</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,490,213</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">3,481,128</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_maNote11EPS_zesj6nQxoImh" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Common shares issuable under stock option plans</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,674</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">8,663</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_iT_mtNote11EPS_zX5tiRYE1yw8" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Average common shares outstanding assuming dilution</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">3,491,887</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">3,489,791</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 3490213 3481128 1674 8663 3491887 3489791 <p id="xdx_802_eus-gaap--RelatedPartyTransactionsDisclosureTextBlock_z2jHG20b9xl6" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>12. Related Party Transactions:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company had no related party transactions for the years ended May 31, 2021 and 2020.</p> <p id="xdx_802_eus-gaap--ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock_z1amchJJloCf" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>13. Employee Stock Purchase Plan:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. Purchase of common shares can be made by employee contributions through payroll deductions. At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. During the years ended May 31, 2021 and 2020, <span id="xdx_90D_eus-gaap--StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_c20200601__20210531_zRjmQ3hfPsH3">1,470</span> ($9.20 to $11.40 price per share) and <span id="xdx_90A_eus-gaap--StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_c20190601__20200531_z4Xos0inPWOf">1,374</span> ($8.63 to $11.00 price per share) common shares, respectively, were issued to employees. As of May 31, 2021, 218,783 shares were reserved for further issue.</p> 1470 1374 <p id="xdx_804_eus-gaap--DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_zwWEe15lsJd" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>14. Stock Option Plans:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In 2018, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. The incentive stock options qualify for preferential treatment under the Internal Revenue Code. Under this plan, <span id="xdx_905_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_iI_c20210531_zHeaIzxygmgk" title="Common shares reserved for stock options">160,000</span> shares of common stock have been reserved for grant to key employees and directors of the Company and 76,000 shares have been granted as of May 31, 2021. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $<span id="xdx_900_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20200601__20210531_zhGwadUgNsh2">3.27</span> during 2021 and $<span id="xdx_907_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20190601__20200531_zdKgiY2TIhM9">2.85</span> during 2020. The pricing model uses the assumptions noted in the following table. Expected volatility is based on the historical volatility of the Company's stock. The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.</p> <table cellpadding="0" cellspacing="0" id="xdx_88C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock_zgTgRuXiZhhb" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock option plans table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_497_20200601__20210531_zu1gZS0M2ddj" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20190601__20200531_zzBCWKuSzYv6" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_400_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_zqQynu0q6Xy5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Risk-free interest rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">2.31</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left">%</td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">1.98</td><td style="width: 1%; text-align: left">%</td></tr> <tr id="xdx_404_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_dtY_zjkto4vPAT5h" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected life in years</td><td style="color: navy; font-weight: bold"> </td> <td colspan="2" style="color: navy; font-weight: bold; text-align: right">4.0</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td colspan="2" style="text-align: right">3.9</td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_zVkUN8Fjsl7i" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Expected volatility</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">33</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">32</td><td style="text-align: left">%</td></tr> <tr id="xdx_40B_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_zKDdUYbjaSJd" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected dividend yield</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">0</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">0</td><td style="text-align: left">%</td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0">The following is a summary of stock option activity:</p> <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfStockOptionsRollForwardTableTextBlock_zAf0BkAzt9Td" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock options roll foward (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Intrinsic Value</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: justify">Outstanding - May 31, 2019</td><td style="width: 5%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20190531_zeMGTZ3YJWTl" style="width: 11%; color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">224,000</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20190531_z4LuL0rj2mJd" style="width: 11%; text-align: right" title="Weighted average exercise price of options outstanding">11.71</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20190531_zCKAh9nHuXle" style="width: 11%; text-align: right" title="Intrinsic value of options outstanding">228,132</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20190601__20200531_zqmjHxq8EgR8" style="color: navy; font-weight: bold; text-align: right" title="Options granted">50,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zRUXa0nppGf9" style="text-align: right" title="Weighted average exercise price of options granted">10.30</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">     Less: options exercised</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_989_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20190601__20200531_zn25AEK2kjei" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">10,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20190601__20200531_zsVYfAknvNcd" style="text-align: right" title="Weighted average exercise price of options exercised">6.35</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20190601__20200531_zZQdJ8BCrMi8" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">12,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zF4kuHnZLbFh" style="text-align: right" title="Weighted average exercise price of options expired">14.34</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">Outstanding - May 31, 2020</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20200531_zkF5mgWeMEc2" style="color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">252,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20200531_zymLp8eewDM" style="text-align: right" title="Weighted average exercise price of options outstanding">11.52</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20200531_z4nB5Km05He4" style="text-align: right">209,835</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20200601__20210531_zuaQ0fGZqWS3" style="color: navy; font-weight: bold; text-align: right" title="Options granted">47,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98D_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20200601__20210531_zxVfsGO5qAwi" style="text-align: right" title="Weighted average exercise price of options granted">11.26</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">     Less: options exercised</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98B_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20200601__20210531_zES9cxIlplX3" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">13,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20200601__20210531_zwN1UV1Cy8Lh" style="text-align: right" title="Weighted average exercise price of options exercised">6.34</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20200601__20210531_zWXHgbx86QOe" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">18,750</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td style="text-align: right">13.31</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">Outstanding - May 31, 2021</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20210531_zmUj3xJ0vjD5" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">267,750</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20200601__20210531_zzpyEpuiONEh" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted average exercise price of options expired">11.60</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20210531_zUGyYBnkU6Dg" style="border-bottom: Black 1pt solid; text-align: right">271,426</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (137,750 at May 31, 2021 and 98,000 at May 31, 2020.) The Company's closing stock price was $<span id="xdx_906_eus-gaap--SharePrice_iI_c20210531_zvdrHH9regrd" title="Price per share of common">11.85</span> and $<span id="xdx_906_eus-gaap--SharePrice_iI_c20200531_z8qxsN7enKu2">10.99</span> as of May 31, 2021 and 2020. As of May 31, 2021, there are <span id="xdx_904_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_iI_c20210531_zBSYi5dhupUi" title="Shares available">84,000</span> options available for future grants under the 2018 stock option plan. $<span id="xdx_900_eus-gaap--ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_c20200601__20210531_zb5KcLd0wgJe" title="Proceeds exercise of options">28,425</span> and $<span id="xdx_90E_eus-gaap--ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_c20190601__20200531_zCgriuj7Natg">31,750</span> was received from the exercise of share options during the fiscal years ended May 31, 2021 and 2020.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following table summarizes information about stock options outstanding at May 31, 2021:</p> <p style="font: 6pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_885_eus-gaap--ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_zs3MFI4jbn03" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt">Outstanding and Exercisable</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: center">$  <span id="xdx_90D_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zHaClMtzApp1" title="Range of exercise prices, Minimum">7.01</span>-$  <span id="xdx_90E_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zZ2E0Oqcf5f5" title="Range of exercise prices, Maximum">8.00</span></td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zH8e9wReKDId" style="width: 11%; text-align: right" title="Number of Options">15,000</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_988_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zsUXUb9oLIwd" style="width: 11%; text-align: right" title="Remaining number of years">1.6</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_982_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zeonyiQ5Ax6d" style="width: 11%; text-align: right" title="Weighted Average Exercise Price">7.74</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$  <span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zaeDDDe12Kdg">8.01</span>-$  <span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_z5BoqTTsbbV6">9.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zFjwtEWGAVI5" style="text-align: right" title="Number of Options">24,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_982_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zxF0n1vm4cf5" style="text-align: right" title="Remaining number of years">2.1</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zhEcTG5y6k45" style="text-align: right" title="Weighted Average Exercise Price">8.71</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$  <span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zYDAfZQNyqy6">9.01</span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zB9ldESbKdyd">10.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_z14FvXChgu7h" style="text-align: right" title="Number of Options">30,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98D_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zrLjKy0HhBj2" style="text-align: right" title="Remaining number of years">7.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zv8yxcQAemB" style="text-align: right" title="Weighted Average Exercise Price">9.85</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_904_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zo76YF3O0lH3">10.01</span>-$<span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zamXJAD8j80d">11.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zFvI8n6XuYs" style="text-align: right" title="Number of Options">32,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zvGWcoApXOYe" style="text-align: right" title="Remaining number of years">7.2</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zaGzv7HPKKol" style="text-align: right" title="Weighted Average Exercise Price">10.17</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zRjeC6frhg01">11.01</span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zu3zJkq8bLif">12.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zDruVCGsq5u7" style="text-align: right" title="Number of Options">91,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zUP4Jh3C5Kih" style="text-align: right" title="Remaining number of years">7.4</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z8QoCbZ12IJ2" style="text-align: right" title="Weighted Average Exercise Price">11.71</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zBbFGBX62yE2">12.01</span>-$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_z8yAmSp4zuTk">13.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zzH4MT46o3f7" style="text-align: right" title="Number of Options">33,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zAE7rNflUn07" style="text-align: right" title="Remaining number of years">4.3</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zSNHsKV7gEdj" style="text-align: right" title="Weighted Average Exercise Price">12.36</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_904_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zFGaxFYYRWBd">13.01</span>-$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zPchXXXpMCcl">14.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zVUXvjF1qYSf" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zFb1urrYe66j" style="text-align: right" title="Remaining number of years">4.2</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zMfOs6VLQH5k" style="text-align: right" title="Weighted Average Exercise Price">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zA2GLGpMktv1">16.01</span>-$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zRRNSfVVoHK1">17.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zIVqEtjKEH76" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zRPwQzVUfNMh" style="text-align: right" title="Remaining number of years">3.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_983_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_z5bIoAVRIRQh" style="text-align: right" title="Weighted Average Exercise Price">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQ9ZJrCA10el">19.01</span>-$<span id="xdx_90E_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zeFNnC31W7Tl">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_981_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zhqBAVIGLHrb" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options">11,250</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zNYjuToh3rV8" style="border-bottom: Black 1pt solid; text-align: right" title="Remaining number of years">5.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_984_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zoKFpN3ORKvl" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted Average Exercise Price">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$  <span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531_zPFxpHyPYsvh" title="Range of exercise prices, Minimum">7.01</span>-$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531_zPujhfY0M6La">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20210531_zNtqi0FMItS4" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options">267,750</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531_zL5VnPLlcZ3c" style="border-bottom: Black 1pt solid; text-align: right" title="Remaining number of years">5.7</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20210531_zgBCE54Sv0xj" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted Average Exercise Price">11.60</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 12pt"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following table summarizes information about stock options outstanding at May 31, 2020:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_888_eus-gaap--ScheduleOfOtherShareBasedCompensationActivityTableTextBlock_zKMbFgqBThT1" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt">Outstanding and Exercisable</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: center">$  <span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531_zwfc99kmganl" title="Range of exercise prices, Minimum">5.01</span>-$  <span id="xdx_900_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zXQ1xP05Gk0d" title="Range of exercise prices, Maximum">6.00</span></td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zfBsITU0rSs7" style="width: 11%; text-align: right" title="Number of Options">10,000</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_z5kVaAdHJjEk" style="width: 11%; text-align: right" title="Remaining number of years">0.9</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_98A_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zHRVnxZJsHD2" style="width: 11%; text-align: right" title="Weighted Average Exercise Price">5.69</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$  <span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zUTaLP3uJxQ4" title="Range of exercise prices, Minimum">7.01</span>-$  <span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zJpG8USFA5V7" title="Range of exercise prices, Maximum">8.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zIAGxXAq4fRe" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_986_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zg7XXdDozb7f" style="text-align: right" title="Remaining number of years">2.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zTxuY5fIdeUj" style="text-align: right" title="Weighted Average Exercise Price">7.74</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$  <span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_z5utbuWnr2J5" title="Range of exercise prices, Minimum">8.01</span>-$  <span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zphIBb1bbx75" title="Range of exercise prices, Maximum">9.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zmCB0kMwMX9l" style="text-align: right" title="Number of Options">27,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zCLRMe1qUS07" style="text-align: right" title="Remaining number of years">3.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_981_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_z6SPEr7ipDc4" style="text-align: right" title="Weighted Average Exercise Price">8.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$  <span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zwpsPRbIaHF4" title="Range of exercise prices, Minimum">9.01</span>-$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_z7otbNiVpxcj" title="Range of exercise prices, Maximum">10.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zAr6BDN2wAXd" style="text-align: right" title="Number of Options">30,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zFzJhmyfONU8" style="text-align: right" title="Remaining number of years">9.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98B_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zQgHRnHrpdN2" style="text-align: right" title="Weighted Average Exercise Price">9.85</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zfOkN02D3Lz9" title="Range of exercise prices, Minimum">10.01</span>-$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zuy9CuLQFjf1" title="Range of exercise prices, Maximum">11.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_znNr3SGzLDi" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zSthUWz7Mpig" style="text-align: right" title="Remaining number of years">7.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zHXN2v5SZMXh" style="text-align: right" title="Weighted Average Exercise Price">10.30</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_90C_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zQResNy3exEg" title="Range of exercise prices, Minimum">11.01</span>-$<span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z0YPMJWTJhle" title="Range of exercise prices, Maximum">12.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z6fE6BA0vFQ2" style="text-align: right" title="Number of Options">68,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98D_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zg4IKAm6VTOg" style="text-align: right" title="Remaining number of years">7.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zutyVRnbMtVe" style="text-align: right" title="Weighted Average Exercise Price">11.57</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zukRtw4Hauel" title="Range of exercise prices, Minimum">12.01</span>-$<span id="xdx_90D_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zHd6NG1yM5k2" title="Range of exercise prices, Maximum">13.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zLqQv9zs8KOi" style="text-align: right" title="Number of Options">40,500</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_z9bVGf9r2u3c" style="text-align: right" title="Remaining number of years">5.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_986_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zhIsZ9UFiquc" style="text-align: right" title="Weighted Average Exercise Price">12.38</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zL7IcTVoeSD6" title="Range of exercise prices, Minimum">13.01</span>-$<span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zDJm4ExdLTRd" title="Range of exercise prices, Maximum">14.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zKa8wb81MK56" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zR41hmH74hxl" style="text-align: right" title="Remaining number of years">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zaXZIaRdUOSe" style="text-align: right" title="Weighted Average Exercise Price">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zXCGg1439b42" title="Range of exercise prices, Minimum">16.01</span>-$<span id="xdx_904_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zRvUf8aoi1S5" title="Range of exercise prices, Maximum">17.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98B_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zytOqCBOiexg" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zvkDO8nHEpO6" style="text-align: right" title="Remaining number of years">5.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zaq0Ji7G6pui" style="text-align: right" title="Weighted Average Exercise Price">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_902_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_z9c57jG3Z5yf" title="Range of exercise prices, Minimum">19.01</span>-$<span id="xdx_90E_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQsPxwvehiAf" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQF183vAXCC1" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options">15,000</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_z5Yg5dHAFsm9" style="border-bottom: Black 1pt solid; text-align: right" title="Remaining number of years">6.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zfb37ASLiIN4" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted Average Exercise Price">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$  <span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531_zoZjiqjRJHe2" title="Range of exercise prices, Minimum">5.01</span>-$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531_zYPsRYzj8oRj" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iTI_c20200531_zGIpqKBi3d7j" style="border-bottom: Black 1pt solid; text-align: right">252,250</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">6.5</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">11.52</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 12pt"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> 160000 3.27 2.85 <table cellpadding="0" cellspacing="0" id="xdx_88C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock_zgTgRuXiZhhb" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock option plans table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_497_20200601__20210531_zu1gZS0M2ddj" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2021</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20190601__20200531_zzBCWKuSzYv6" style="border-bottom: Black 1pt solid; text-align: center">2020</td></tr> <tr id="xdx_400_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_zqQynu0q6Xy5" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Risk-free interest rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">2.31</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left">%</td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">1.98</td><td style="width: 1%; text-align: left">%</td></tr> <tr id="xdx_404_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_dtY_zjkto4vPAT5h" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected life in years</td><td style="color: navy; font-weight: bold"> </td> <td colspan="2" style="color: navy; font-weight: bold; text-align: right">4.0</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td colspan="2" style="text-align: right">3.9</td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_zVkUN8Fjsl7i" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Expected volatility</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">33</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">32</td><td style="text-align: left">%</td></tr> <tr id="xdx_40B_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_zKDdUYbjaSJd" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected dividend yield</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">0</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">0</td><td style="text-align: left">%</td></tr> </table> 0.0231 0.0198 P4Y P3Y10M24D 0.33 0.32 0 0 <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfStockOptionsRollForwardTableTextBlock_zAf0BkAzt9Td" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock options roll foward (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Intrinsic Value</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: justify">Outstanding - May 31, 2019</td><td style="width: 5%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20190531_zeMGTZ3YJWTl" style="width: 11%; color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">224,000</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20190531_z4LuL0rj2mJd" style="width: 11%; text-align: right" title="Weighted average exercise price of options outstanding">11.71</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20190531_zCKAh9nHuXle" style="width: 11%; text-align: right" title="Intrinsic value of options outstanding">228,132</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20190601__20200531_zqmjHxq8EgR8" style="color: navy; font-weight: bold; text-align: right" title="Options granted">50,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zRUXa0nppGf9" style="text-align: right" title="Weighted average exercise price of options granted">10.30</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">     Less: options exercised</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_989_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20190601__20200531_zn25AEK2kjei" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">10,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20190601__20200531_zsVYfAknvNcd" style="text-align: right" title="Weighted average exercise price of options exercised">6.35</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20190601__20200531_zZQdJ8BCrMi8" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">12,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zF4kuHnZLbFh" style="text-align: right" title="Weighted average exercise price of options expired">14.34</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">Outstanding - May 31, 2020</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20200531_zkF5mgWeMEc2" style="color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">252,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20200531_zymLp8eewDM" style="text-align: right" title="Weighted average exercise price of options outstanding">11.52</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20200531_z4nB5Km05He4" style="text-align: right">209,835</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20200601__20210531_zuaQ0fGZqWS3" style="color: navy; font-weight: bold; text-align: right" title="Options granted">47,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98D_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20200601__20210531_zxVfsGO5qAwi" style="text-align: right" title="Weighted average exercise price of options granted">11.26</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">     Less: options exercised</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98B_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20200601__20210531_zES9cxIlplX3" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">13,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20200601__20210531_zwN1UV1Cy8Lh" style="text-align: right" title="Weighted average exercise price of options exercised">6.34</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20200601__20210531_zWXHgbx86QOe" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">18,750</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td style="text-align: right">13.31</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">Outstanding - May 31, 2021</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20210531_zmUj3xJ0vjD5" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">267,750</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20200601__20210531_zzpyEpuiONEh" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted average exercise price of options expired">11.60</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20210531_zUGyYBnkU6Dg" style="border-bottom: Black 1pt solid; text-align: right">271,426</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 224000 11.71 228132 50250 10.30 10000 6.35 12000 14.34 252250 11.52 209835 47250 11.26 13000 6.34 18750 267750 11.60 271426 11.85 10.99 84000 28425 31750 <table cellpadding="0" cellspacing="0" id="xdx_885_eus-gaap--ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_zs3MFI4jbn03" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt">Outstanding and Exercisable</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: center">$  <span id="xdx_90D_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zHaClMtzApp1" title="Range of exercise prices, Minimum">7.01</span>-$  <span id="xdx_90E_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zZ2E0Oqcf5f5" title="Range of exercise prices, Maximum">8.00</span></td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zH8e9wReKDId" style="width: 11%; text-align: right" title="Number of Options">15,000</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_988_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zsUXUb9oLIwd" style="width: 11%; text-align: right" title="Remaining number of years">1.6</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_982_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zeonyiQ5Ax6d" style="width: 11%; text-align: right" title="Weighted Average Exercise Price">7.74</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$  <span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zaeDDDe12Kdg">8.01</span>-$  <span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_z5BoqTTsbbV6">9.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zFjwtEWGAVI5" style="text-align: right" title="Number of Options">24,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_982_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zxF0n1vm4cf5" style="text-align: right" title="Remaining number of years">2.1</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zhEcTG5y6k45" style="text-align: right" title="Weighted Average Exercise Price">8.71</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$  <span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zYDAfZQNyqy6">9.01</span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zB9ldESbKdyd">10.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_z14FvXChgu7h" style="text-align: right" title="Number of Options">30,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98D_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zrLjKy0HhBj2" style="text-align: right" title="Remaining number of years">7.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zv8yxcQAemB" style="text-align: right" title="Weighted Average Exercise Price">9.85</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_904_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zo76YF3O0lH3">10.01</span>-$<span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zamXJAD8j80d">11.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zFvI8n6XuYs" style="text-align: right" title="Number of Options">32,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zvGWcoApXOYe" style="text-align: right" title="Remaining number of years">7.2</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zaGzv7HPKKol" style="text-align: right" title="Weighted Average Exercise Price">10.17</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zRjeC6frhg01">11.01</span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zu3zJkq8bLif">12.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zDruVCGsq5u7" style="text-align: right" title="Number of Options">91,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zUP4Jh3C5Kih" style="text-align: right" title="Remaining number of years">7.4</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z8QoCbZ12IJ2" style="text-align: right" title="Weighted Average Exercise Price">11.71</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zBbFGBX62yE2">12.01</span>-$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_z8yAmSp4zuTk">13.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zzH4MT46o3f7" style="text-align: right" title="Number of Options">33,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zAE7rNflUn07" style="text-align: right" title="Remaining number of years">4.3</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zSNHsKV7gEdj" style="text-align: right" title="Weighted Average Exercise Price">12.36</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_904_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zFGaxFYYRWBd">13.01</span>-$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zPchXXXpMCcl">14.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zVUXvjF1qYSf" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zFb1urrYe66j" style="text-align: right" title="Remaining number of years">4.2</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zMfOs6VLQH5k" style="text-align: right" title="Weighted Average Exercise Price">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zA2GLGpMktv1">16.01</span>-$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zRRNSfVVoHK1">17.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zIVqEtjKEH76" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zRPwQzVUfNMh" style="text-align: right" title="Remaining number of years">3.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_983_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_z5bIoAVRIRQh" style="text-align: right" title="Weighted Average Exercise Price">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQ9ZJrCA10el">19.01</span>-$<span id="xdx_90E_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zeFNnC31W7Tl">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_981_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zhqBAVIGLHrb" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options">11,250</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zNYjuToh3rV8" style="border-bottom: Black 1pt solid; text-align: right" title="Remaining number of years">5.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_984_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20210531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zoKFpN3ORKvl" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted Average Exercise Price">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$  <span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne_iI_c20210531_zPFxpHyPYsvh" title="Range of exercise prices, Minimum">7.01</span>-$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne_iI_c20210531_zPujhfY0M6La">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20210531_zNtqi0FMItS4" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options">267,750</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne_iI_c20210531_zL5VnPLlcZ3c" style="border-bottom: Black 1pt solid; text-align: right" title="Remaining number of years">5.7</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20210531_zgBCE54Sv0xj" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted Average Exercise Price">11.60</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 12pt"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> </table> 7.01 8.00 15000 1.6 7.74 8.01 9.00 24250 2.1 8.71 9.01 10.00 30000 7.6 9.85 10.01 11.00 32250 7.2 10.17 11.01 12.00 91250 7.4 11.71 12.01 13.00 33750 4.3 12.36 13.01 14.00 15000 4.2 13.80 16.01 17.00 15000 3.6 16.40 19.01 20.00 11250 5.2 19.26 7.01 20.00 267750 5.7 11.60 <table cellpadding="0" cellspacing="0" id="xdx_888_eus-gaap--ScheduleOfOtherShareBasedCompensationActivityTableTextBlock_zKMbFgqBThT1" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt">Outstanding and Exercisable</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right"> </td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: center">$  <span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531_zwfc99kmganl" title="Range of exercise prices, Minimum">5.01</span>-$  <span id="xdx_900_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zXQ1xP05Gk0d" title="Range of exercise prices, Maximum">6.00</span></td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zfBsITU0rSs7" style="width: 11%; text-align: right" title="Number of Options">10,000</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_z5kVaAdHJjEk" style="width: 11%; text-align: right" title="Remaining number of years">0.9</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_98A_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zHRVnxZJsHD2" style="width: 11%; text-align: right" title="Weighted Average Exercise Price">5.69</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$  <span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zUTaLP3uJxQ4" title="Range of exercise prices, Minimum">7.01</span>-$  <span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zJpG8USFA5V7" title="Range of exercise prices, Maximum">8.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zIAGxXAq4fRe" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_986_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zg7XXdDozb7f" style="text-align: right" title="Remaining number of years">2.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember_zTxuY5fIdeUj" style="text-align: right" title="Weighted Average Exercise Price">7.74</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$  <span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_z5utbuWnr2J5" title="Range of exercise prices, Minimum">8.01</span>-$  <span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zphIBb1bbx75" title="Range of exercise prices, Maximum">9.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zmCB0kMwMX9l" style="text-align: right" title="Number of Options">27,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zCLRMe1qUS07" style="text-align: right" title="Remaining number of years">3.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_981_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_z6SPEr7ipDc4" style="text-align: right" title="Weighted Average Exercise Price">8.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$  <span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zwpsPRbIaHF4" title="Range of exercise prices, Minimum">9.01</span>-$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_z7otbNiVpxcj" title="Range of exercise prices, Maximum">10.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zAr6BDN2wAXd" style="text-align: right" title="Number of Options">30,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zFzJhmyfONU8" style="text-align: right" title="Remaining number of years">9.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98B_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zQgHRnHrpdN2" style="text-align: right" title="Weighted Average Exercise Price">9.85</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zfOkN02D3Lz9" title="Range of exercise prices, Minimum">10.01</span>-$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zuy9CuLQFjf1" title="Range of exercise prices, Maximum">11.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_znNr3SGzLDi" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zSthUWz7Mpig" style="text-align: right" title="Remaining number of years">7.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zHXN2v5SZMXh" style="text-align: right" title="Weighted Average Exercise Price">10.30</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_90C_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zQResNy3exEg" title="Range of exercise prices, Minimum">11.01</span>-$<span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z0YPMJWTJhle" title="Range of exercise prices, Maximum">12.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z6fE6BA0vFQ2" style="text-align: right" title="Number of Options">68,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98D_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zg4IKAm6VTOg" style="text-align: right" title="Remaining number of years">7.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zutyVRnbMtVe" style="text-align: right" title="Weighted Average Exercise Price">11.57</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zukRtw4Hauel" title="Range of exercise prices, Minimum">12.01</span>-$<span id="xdx_90D_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zHd6NG1yM5k2" title="Range of exercise prices, Maximum">13.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zLqQv9zs8KOi" style="text-align: right" title="Number of Options">40,500</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_z9bVGf9r2u3c" style="text-align: right" title="Remaining number of years">5.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_986_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zhIsZ9UFiquc" style="text-align: right" title="Weighted Average Exercise Price">12.38</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zL7IcTVoeSD6" title="Range of exercise prices, Minimum">13.01</span>-$<span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zDJm4ExdLTRd" title="Range of exercise prices, Maximum">14.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zKa8wb81MK56" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98C_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zR41hmH74hxl" style="text-align: right" title="Remaining number of years">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zaXZIaRdUOSe" style="text-align: right" title="Weighted Average Exercise Price">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zXCGg1439b42" title="Range of exercise prices, Minimum">16.01</span>-$<span id="xdx_904_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zRvUf8aoi1S5" title="Range of exercise prices, Maximum">17.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98B_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zytOqCBOiexg" style="text-align: right" title="Number of Options">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zvkDO8nHEpO6" style="text-align: right" title="Remaining number of years">5.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zaq0Ji7G6pui" style="text-align: right" title="Weighted Average Exercise Price">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_902_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_z9c57jG3Z5yf" title="Range of exercise prices, Minimum">19.01</span>-$<span id="xdx_90E_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQsPxwvehiAf" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQF183vAXCC1" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options">15,000</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_z5Yg5dHAFsm9" style="border-bottom: Black 1pt solid; text-align: right" title="Remaining number of years">6.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_980_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zfb37ASLiIN4" style="border-bottom: Black 1pt solid; text-align: right" title="Weighted Average Exercise Price">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$  <span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531_zoZjiqjRJHe2" title="Range of exercise prices, Minimum">5.01</span>-$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531_zYPsRYzj8oRj" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_982_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iTI_c20200531_zGIpqKBi3d7j" style="border-bottom: Black 1pt solid; text-align: right">252,250</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">6.5</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">11.52</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 12pt"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> </table> 5.01 6.00 10000 0.9 5.69 7.01 8.00 15000 2.9 7.74 8.01 9.00 27250 3.6 8.69 9.01 10.00 30750 9.9 9.85 10.01 11.00 15000 7.9 10.30 11.01 12.00 68750 7.8 11.57 12.01 13.00 40500 5.8 12.38 13.01 14.00 15000 6.9 13.80 16.01 17.00 15000 5.9 16.40 19.01 20.00 15000 6.2 19.26 5.01 20.00 252250 <p id="xdx_80B_eus-gaap--PreferredStockTextBlock_zNAXra8j9wsk" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>15. Preferred Stock:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has <span id="xdx_90B_eus-gaap--PreferredStockSharesAuthorized_iI_c20210531_zmcv1j9smm55" title="Preferred shares authorized">2,000,000</span> authorized but unissued shares of preferred stock which may be issued in series. The shares of each series shall have such rights, preferences, and limitations as shall be fixed by the Board of Directors.</p> 2000000 <p id="xdx_802_eus-gaap--TreasuryStockTextBlock_zePzHrXPrfWa" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>16. Treasury Stock:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Treasury shares are <span id="xdx_903_eus-gaap--TreasuryStockShares_iI_c20210531_z8OOdVJRPM93" title="Treasury Stock">558,834</span> and <span id="xdx_902_eus-gaap--TreasuryStockShares_iI_c20200531_zWUrkH6p0RA9">553,934</span> at May 31, 2021 and 2020.</p> 558834 553934 <p id="xdx_801_eus-gaap--ScheduleOfCostsOfRetirementPlansTableTextBlock_zSwqCIaUeBM5" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>17. Retirement Plan:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. The Company matches a percentage of employee voluntary salary deferrals subject to limitations. The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. The amount expensed under the plan was $<span id="xdx_90E_eus-gaap--PensionExpense_c20200601__20210531_zjyXvXib5qEf" title="Retirement plan expense">288,470</span> and $<span id="xdx_905_eus-gaap--PensionExpense_c20190601__20200531_zO59g7VEQUqa">158,191</span> for the years ended May 31, 2021 and 2020.</p> 288470 158191 <p id="xdx_80B_eus-gaap--FairValueOfFinancialInstrumentsPolicy_zY0StJB3tSZf" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>18. Fair Value of Financial Instruments:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The fair values of short-term investments were determined as described in Note 1.</p> <p id="xdx_803_eus-gaap--CashFlowSupplementalDisclosuresTextBlock_zSN4KAClJV01" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>19. Cash Flows Information:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_zmoGbFbUvEF5" style="font: 12pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Supplemental cash flow information (Details)"> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20200601__20210531_zy03U7HU6Tce" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2021</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20190601__20200531_zqISXYmrWz61" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2020</td></tr> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td> </td> <td colspan="3" style="text-align: right"> </td><td> </td> <td colspan="3" style="text-align: right"> </td></tr> <tr id="xdx_40C_eus-gaap--InterestPaid_dn_zt81CaOrhKh" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Interest paid</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="font-size: 10pt; color: navy"><b>none</b></span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; text-align: right"><span style="font-size: 10pt">none</span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxesPaid_zwzi65G8xHF4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Income taxes paid</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">43,630</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">180,131</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_884_eus-gaap--ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_zmoGbFbUvEF5" style="font: 12pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto" summary="xdx: Disclosure - Supplemental cash flow information (Details)"> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20200601__20210531_zy03U7HU6Tce" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2021</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20190601__20200531_zqISXYmrWz61" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2020</td></tr> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td> </td> <td colspan="3" style="text-align: right"> </td><td> </td> <td colspan="3" style="text-align: right"> </td></tr> <tr id="xdx_40C_eus-gaap--InterestPaid_dn_zt81CaOrhKh" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Interest paid</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="font-size: 10pt; color: navy"><b>none</b></span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; text-align: right"><span style="font-size: 10pt">none</span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--IncomeTaxesPaid_zwzi65G8xHF4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Income taxes paid</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">43,630</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">180,131</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> </table> 0 0 43630 180131 <p id="xdx_801_eus-gaap--UnusualRisksAndUncertaintiesTextBlock_zqpUGry823rl" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>20. Risks and Uncertainties:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also fluctuated significantly during this time. The extent of the impact of COVID-19 on the Company’s operational and financial performance was significant in fiscal 2021. While the use of vaccinations world-wide have apparently slowed spread of the disease, the extent of the impact of COVID-19 on the Company’s operational and financial performance in fiscal 2022 will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">As a result of the pandemic described above, the Company applied for, and received, financial assistance from the U.S. federal government as part of the CARES Act and the Consolidated Appropriations Act of 2021 (CAA) including: a.) $1,461,500 of income due to the forgiveness of the PPP loan by the SBA (discussed previously in Note 7), and b.) $1,510,131 of Employee Retention Credit income. These amounts are included in Other income on the Consolidated Statements of Income.</p> XML 12 R1.htm IDEA: XBRL DOCUMENT v3.21.2
Cover - USD ($)
12 Months Ended
May 31, 2021
Aug. 27, 2021
Nov. 30, 2020
Cover [Abstract]      
Document Type 10-K    
Amendment Flag false    
Document Annual Report true    
Document Transition Report false    
Document Period End Date May 31, 2021    
Document Fiscal Period Focus FY    
Document Fiscal Year Focus 2021    
Current Fiscal Year End Date --05-31    
Entity File Number 0-3498    
Entity Registrant Name TAYLOR DEVICES INC    
Entity Central Index Key 0000096536    
Entity Tax Identification Number 16-0797789    
Entity Incorporation, State or Country Code NY    
Entity Address, Address Line One 90 Taylor Drive    
Entity Address, City or Town North Tonawanda    
Entity Address, State or Province NY    
Entity Address, Postal Zip Code 14120    
City Area Code 716    
Local Phone Number 694-0800    
Title of 12(g) Security Common Stock ($.025 par value)    
Entity Well-known Seasoned Issuer No    
Entity Voluntary Filers No    
Entity Current Reporting Status Yes    
Entity Interactive Data Current Yes    
Entity Filer Category Non-accelerated Filer    
Entity Small Business true    
Entity Emerging Growth Company false    
Entity Shell Company false    
Entity Public Float     $ 36,765,000
Entity Common Stock, Shares Outstanding   3,496,765  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.21.2
Consolidated Balance Sheets - USD ($)
May 31, 2021
May 31, 2020
Current assets:    
Cash and cash equivalents $ 20,581,604 $ 15,159,827
Short-term investments 1,097,012 1,071,950
Accounts and other receivables, net 4,120,564 5,819,471
Inventory 5,835,596 10,107,437
Prepaid expenses 522,747 460,212
Prepaid income taxes 454,778 50,148
Costs and estimated earnings in excess of billings 1,499,604 1,754,573
Total current assets 34,111,905 34,423,618
Maintenance and other inventory, net 1,612,839 879,050
Property and equipment, net 9,816,594 9,407,490
Cash value of life insurance, net 200,538 195,621
Deferred income taxes 190,115 170,115
Total assets 45,931,991 45,075,894
Current liabilities:    
Short-term borrowings 1,461,500
Accounts payable 1,787,325 1,370,175
Accrued commissions 269,064 305,885
Other accrued expenses 1,715,409 1,663,914
Billings in excess of costs and estimated earnings 1,361,985 736,866
Total current liabilities 5,133,783 5,538,340
Stockholders' Equity:    
Common stock, $.025 par value, authorized 8,000,000 shares,    issued 4,055,275 and 4,040,805 shares 101,305 100,943
Paid-in capital 10,010,430 9,759,063
Retained earnings 33,601,475 32,538,580
Stockholders’ equity before treasury stock 43,713,210 42,398,586
Treasury stock – 558,834 and 553,934 shares at cost (2,915,002) (2,861,032)
Total stockholders' equity 40,798,208 39,537,554
 Total liabilities and stockholders’ equity $ 45,931,991 $ 45,075,894
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.21.2
Consolidated Balance Sheets (Parenthetical) - $ / shares
May 31, 2021
May 31, 2020
Statement of Financial Position [Abstract]    
Common Stock, Par or Stated Value Per Share $ 0.025 $ 0.025
Common Stock, Shares Authorized 8,000,000 8,000,000
Common Stock, Shares, Issued 4,055,275 4,040,805
Treasury Stock, Shares 558,834 553,934
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.21.2
Consolidated Statements of Income - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Income Statement [Abstract]    
Sales, net $ 22,509,641 $ 28,381,541
Cost of goods sold 19,334,950 19,144,451
     Gross profit 3,174,691 9,237,090
Selling, general and administrative expenses 5,526,774 5,934,410
     Operating income (loss) (2,352,083) 3,302,680
   Interest, net 53,654 111,054
   Paycheck Protection Program loan forgiveness 1,461,500
   Employee Retention Credit 1,510,131
   Miscellaneous 8,693 2,242
Total other income 3,033,978 113,296
     Income before provision for income taxes 681,895 3,415,976
Provision for income taxes (benefit) (381,000) 386,000
     Net income $ 1,062,895 $ 3,029,976
Basic and diluted earnings per common share $ 0.30 $ 0.87
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.21.2
Consolidated Statements of Shareholders Equity - USD ($)
Common Stock [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
Treasury Stock [Member]
Stockholders' Equity Attributable to Parent $ 100,735 $ 9,538,892 $ 29,508,604  
Stockholders' Equity Attributable to Parent, Beginning Balance at May. 31, 2019 100,735 9,538,892 29,508,604  
Stock Issued During Period, Value, Employee Stock Purchase Plan 34 13,824    
Stock Issued During Period, Value, Employee Benefit Plan 174 63,250   $ (31,673)
Stockholders' Equity Attributable to Parent, Ending Balance at May. 31, 2020 100,943 9,759,063 32,538,580  
APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition   143,097    
Net Income (Loss) Attributable to Parent     3,029,976  
Treasury Stock, Value, Beginning Balance at May. 31, 2019       (2,829,359)
Treasury Stock, Value, Ending Balance at May. 31, 2020       (2,861,032)
Stockholders' Equity Attributable to Parent 100,943 9,759,063 32,538,580  
Stock Issued During Period, Value, Employee Stock Purchase Plan 37 14,954    
Stock Issued During Period, Value, Employee Benefit Plan 325 82,070   (53,970)
Stockholders' Equity Attributable to Parent, Ending Balance at May. 31, 2021 101,305 10,010,430 33,601,475  
APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition   154,343    
Net Income (Loss) Attributable to Parent     1,062,895  
Treasury Stock, Value, Ending Balance at May. 31, 2021       $ (2,915,002)
Stockholders' Equity Attributable to Parent $ 101,305 $ 10,010,430 $ 33,601,475  
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.21.2
Consolidated Statements of Cash Flows - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Operating activities:    
Net income $ 1,062,895 $ 3,029,976
Adjustments to reconcile net income to net cash flows from operating activities:    
Depreciation 1,212,713 1,141,110
Stock options issued for services 154,343 143,097
Bad debt expense 134,000
Provision for inventory obsolescence 1,500,000 180,000
Deferred income taxes (20,000) 19,000
Paycheck Protection Program debt forgiveness (1,461,500)
Changes in other current assets and liabilities:    
Accounts and other receivables 1,564,907 (540,169)
Inventory 2,038,052 804,721
Prepaid expenses (62,535) (148,052)
Prepaid income taxes (404,630) 186,869
Costs and estimated earnings in excess of billings 254,969 5,817,917
Accounts payable 417,150 (32,517)
Accrued commissions (36,821) (1,003,473)
Other accrued expenses 51,495 131,644
Billings in excess of costs and estimated earnings 625,119 103,163
Net operating activities 7,030,157 9,833,286
Investing activities:    
Acquisition of property and equipment (1,621,817) (1,231,158)
Increase in short-term investments (25,062) (16,359)
Increase in cash value of life insurance (4,917) (4,872)
Net investing activities (1,651,796) (1,252,389)
Financing activities:    
Short-term borrowings 1,461,500
Proceeds from issuance of common stock 43,416 45,608
Net financing activities 43,416 1,507,108
Net change in cash and cash equivalents 5,421,777 10,088,005
Cash and cash equivalents - beginning 15,159,827 5,071,822
Cash and cash equivalents - ending $ 20,581,604 $ 15,159,827
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.21.2
1. Summary of Significant Accounting Policies:
12 Months Ended
May 31, 2021
Accounting Policies [Abstract]  
1. Summary of Significant Accounting Policies:

1. Summary of Significant Accounting Policies:

 

Nature of Operations:

 

Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.

 

68% of the Company's 2021 revenue was generated from sales to customers in the United States and 20% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.

 

83% of the Company's 2020 revenue was generated from sales to customers in the United States and 11% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.

 

Principles of Consolidation:

 

The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.

 

Subsequent Events:

 

The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.

 

Use of Estimates:

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.

 

Cash and Cash Equivalents:

 

The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.

 

Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.

 

Short-term Investments:

 

At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2021 and May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (16) mature on various dates during the period August 2021 to September 2025. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.

 

The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.

 

Accounts and Other Receivables:

 

Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.

 

Inventory:

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

 

Property and Equipment:

 

Property and equipment is stated at cost net of accumulated depreciation. Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.

 

Cash Value of Life Insurance:

 

Cash value of life insurance is stated at the surrender value of the contracts.

 

Revenue Recognition:

 

Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

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. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2021, 43% of revenue was recorded for contracts in which revenue was recognized over time while 57% was recognized at a point in time. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time.

Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.

 

If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2021 and 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.

 

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $146,878 and $420,786 for the years ended May 31, 2021 and 2020. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

 

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $924,000 and $585,000 for the years ended May 31, 2021 and 2020.

 

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2021 or 2020. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2021 and 2020.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2018.

 

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

 

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2021 and 2020 was $154,343 and $143,097.

 

 

 

New Accounting Standards:

 

Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

 

XML 19 R8.htm IDEA: XBRL DOCUMENT v3.21.2
2. Accounts and Other Receivables:
12 Months Ended
May 31, 2021
Receivables [Abstract]  
2. Accounts and Other Receivables:

2. Accounts and Other Receivables:

 

   2021  2020
Customers  $3,184,970   $5,399,915 
Customers – retention   200,956    630,823 
Gross accounts receivable   3,385,926    6,030,738 
Less Allowance for doubtful accounts   6,781    211,267 
Add Other receivables   741,419       
Net accounts receivable  $4,120,564   $5,819,471 

 

Retention receivable from customers represents amounts invoiced to customers where payments have been partially withheld pending completion of the project. All amounts are expected to be collected within the next fiscal year.

 

Other receivable is an amount of Employee Retention Credit claimed by the Company for the second calendar quarter of 2021 and is expected to be received in the third calendar quarter of 2021.

XML 20 R9.htm IDEA: XBRL DOCUMENT v3.21.2
3. Inventory:
12 Months Ended
May 31, 2021
Inventory Disclosure [Abstract]  
3. Inventory:

3. Inventory:

 

   2021  2020
Raw materials  $503,344   $658,024 
Work-in-process   5,076,377    8,586,404 
Finished goods   355,875    963,009 
Gross inventory   5,935,596    10,207,437 
Less allowance for obsolescence   100,000    100,000 
Net inventory  $5,835,596   $10,107,437 
XML 21 R10.htm IDEA: XBRL DOCUMENT v3.21.2
4. Costs and Estimated Earnings on Uncompleted Contracts:
12 Months Ended
May 31, 2021
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
4. Costs and Estimated Earnings on Uncompleted Contracts:

4. Costs and Estimated Earnings on Uncompleted Contracts:

 

   2021  2020
Costs incurred on uncompleted contracts  $3,372,276   $6,395,550 
Estimated earnings   778,011    3,816,527 
Total costs and estimated earnings   4,150,287    10,212,077 
Less billings to date   4,012,668    9,194,370 
Costs and estimated earnings not billed  $137,619   $1,017,707 

 

Amounts are included in the accompanying balance sheets under the following captions:

 

   2021  2020
Costs and estimated earnings in excess of billings  $1,499,604   $1,754,573 
Billings in excess of costs and estimated earnings   1,361,985    736,866 
Costs and estimated earnings not billed  $137,619   $1,017,707 

 

The following summarizes the status of Projects in progress as of May 31, 2021 and 2020:

 

   2021  2020
Number of Projects in progress   14    15 
Aggregate percent complete   32%   80%
Aggregate amount remaining  $9,333,701   $2,234,962 
Percentage of total value invoiced to customer   30%   74%

 

The Company expects to recognize the entire remaining revenue on all open projects during the May 31, 2022 fiscal year.

 

Revenue recognized during the years ended May 31, 2021 and 2020 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $736,866 and $633,703.

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.21.2
5. Maintenance and Other Inventory:
12 Months Ended
May 31, 2021
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
5. Maintenance and Other Inventory:

5. Maintenance and Other Inventory:

 

   2021  2020
Maintenance and other inventory  $3,612,000   $2,479,497 
Less allowance for obsolescence   1,999,161    1,600,447 
Maintenance and other inventory, net  $1,612,839   $879,050 

 

Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.

 

This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence.

 

During fiscal 2021, the Company began a thorough review of the facilities including the flow of inventory through the factory and warehouse areas to determine the most efficient utilization of available space. Inventory purchasing practices and stocking levels were also evaluated and it was determined that a significant portion of the older items would be disposed of while the allowance for potential inventory obsolescence would be increased as more items are identified for disposal. $1,101,000 of inventory was disposed of during the year. The provision for potential inventory obsolescence was $1,500,000 and $180,000 for the years ended May 31, 2021 and 2020.

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.21.2
6. Property and Equipment:
12 Months Ended
May 31, 2021
Property, Plant and Equipment [Abstract]  
6. Property and Equipment:

6. Property and Equipment:

 

   2021  2020
Land  $195,220   $195,220 
Buildings and improvements   9,584,087    9,457,142 
Machinery and equipment   12,366,569    11,242,667 
Office furniture and equipment   2,536,688    2,209,382 
Autos and trucks   24,818    24,818 
Land improvements   476,429    455,429 
Gross property and equipment   25,183,811    23,584,658 
Less accumulated depreciation   15,367,217    14,177,168 
Property and equipment, net  $9,816,594   $9,407,490 

 

Depreciation expense was $1,212,713 and $1,141,110 for the years ended May 31, 2021 and 2020.

 

The Company has commitments to make capital expenditures of approximately $400,000 as of May 31, 2021.

XML 24 R13.htm IDEA: XBRL DOCUMENT v3.21.2
7. Short-Term Borrowings:
12 Months Ended
May 31, 2021
Debt Disclosure [Abstract]  
7. Short-Term Borrowings:

7. Short-Term Borrowings:

 

During 2020, the Company received a loan totaling $1,461,500 from the Small Business Administration (SBA) under the Paycheck Protection Program (PPP) of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the pandemic described in Note 20. The total amount of the loan was forgiven during fiscal 2021 under provisions of the CARES Act. The amount of the loan forgiveness is included in Other income on the Consolidated Statements of Income.

 

The Company has available a $10,000,000 demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and subject to renewal annually.

 

There is no amount outstanding under the line of credit at May 31, 2021 or May 31, 2020.

 

The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. Outstanding checks under this arrangement totaled $366,209 and $523,344 as of May 31, 2021 and 2020. These amounts are included in accounts payable.

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.21.2
8. Legal Proceedings:
12 Months Ended
May 31, 2021
Commitments and Contingencies Disclosure [Abstract]  
8. Legal Proceedings:

8. Legal Proceedings:

 

There are no legal proceedings except for routine litigation incidental to the business.

XML 26 R15.htm IDEA: XBRL DOCUMENT v3.21.2
10. Income Taxes:
12 Months Ended
May 31, 2021
Income Tax Disclosure [Abstract]  
10. Income Taxes:

10. Income Taxes:

   2021  2020
Current tax provision (benefit):          
Federal  $(361,000)  $375,000 
State            
Total current tax provision   (361,000)   375,000 
Deferred tax provision (benefit):          
Federal   (20,000)   11,000 
State            
Total deferred tax provision   (20,000)   11,000 
Total tax provision  $(381,000)  $386,000 

 

 

A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:

   2021  2020
Computed tax provision at the expected statutory rate  $143,200   $717,400 
State income tax - net of Federal tax benefit         500 
Tax effect of permanent differences:          
Research tax credits   (218,000)   (272,000)
Foreign-derived intangible income deduction         (99,739)
PPP loan forgiveness   (306,900)      
Other permanent differences   41,500    40,200 
Other   (40,800)   (361)
Total tax provision  $(381,000)  $386,000 
Effective income tax rate   (55.9%)   11.3%


 

Significant components of the Company's deferred tax assets and liabilities consist of the following:

 

   2021  2020
Deferred tax assets:          
Allowance for doubtful receivables  $1,400   $44,400 
Tax inventory adjustment   22,900    94,000 
Allowance for obsolete inventory   440,800    357,100 
Accrued vacation   81,400    60,500 
Accrued commissions   5,900    3,900 
Warranty reserve   23,900    39,400 
Stock options issued for services   238,500    230,200 
Total deferred tax assets   814,800    829,500 
Deferred tax liabilities:          
Excess tax depreciation   (624,685)   (659,385)
Net deferred tax assets  $190,115   $170,115 

 

 

Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. The Company will need to generate approximately $3.9 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2021 of $814,800.

 

The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2021, the Company had State investment tax credit carryforwards of approximately $368,000 expiring through May 2026.

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.21.2
11. Earnings Per Common Share:
12 Months Ended
May 31, 2021
Earnings Per Share [Abstract]  
11. Earnings Per Common Share:

11. Earnings Per Common Share:

 

Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.

 

A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:

 

   2021  2020
Average common shares outstanding   3,490,213    3,481,128 
Common shares issuable under stock option plans   1,674    8,663 
Average common shares outstanding assuming dilution   3,491,887    3,489,791 
XML 28 R17.htm IDEA: XBRL DOCUMENT v3.21.2
12. Related Party Transactions:
12 Months Ended
May 31, 2021
Related Party Transactions [Abstract]  
12. Related Party Transactions:

12. Related Party Transactions:

 

The Company had no related party transactions for the years ended May 31, 2021 and 2020.

XML 29 R18.htm IDEA: XBRL DOCUMENT v3.21.2
13. Employee Stock Purchase Plan:
12 Months Ended
May 31, 2021
Share-based Payment Arrangement [Abstract]  
13. Employee Stock Purchase Plan:

13. Employee Stock Purchase Plan:

 

In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. Purchase of common shares can be made by employee contributions through payroll deductions. At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. During the years ended May 31, 2021 and 2020, 1,470 ($9.20 to $11.40 price per share) and 1,374 ($8.63 to $11.00 price per share) common shares, respectively, were issued to employees. As of May 31, 2021, 218,783 shares were reserved for further issue.

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.21.2
14. Stock Option Plans:
12 Months Ended
May 31, 2021
Share-based Payment Arrangement [Abstract]  
14. Stock Option Plans:

14. Stock Option Plans:

 

In 2018, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. The incentive stock options qualify for preferential treatment under the Internal Revenue Code. Under this plan, 160,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 76,000 shares have been granted as of May 31, 2021. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.

 

Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $3.27 during 2021 and $2.85 during 2020. The pricing model uses the assumptions noted in the following table. Expected volatility is based on the historical volatility of the Company's stock. The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.

   2021  2020
Risk-free interest rate   2.31%   1.98%
Expected life in years  4.0   3.9 
Expected volatility   33%   32%
Expected dividend yield   0%   0%

 

 

The following is a summary of stock option activity:

   Shares  Weighted Average Exercise Price  Intrinsic Value
Outstanding - May 31, 2019   224,000   $11.71   $228,132 
     Options granted   50,250   $10.30      
     Less: options exercised   10,000   $6.35      
     Less: options expired   12,000   $14.34      
Outstanding - May 31, 2020   252,250   $11.52   $209,835 
     Options granted   47,250   $11.26      
     Less: options exercised   13,000   $6.34      
     Less: options expired   18,750   $13.31      
Outstanding - May 31, 2021   267,750   $11.60   $271,426 

 

We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (137,750 at May 31, 2021 and 98,000 at May 31, 2020.) The Company's closing stock price was $11.85 and $10.99 as of May 31, 2021 and 2020. As of May 31, 2021, there are 84,000 options available for future grants under the 2018 stock option plan. $28,425 and $31,750 was received from the exercise of share options during the fiscal years ended May 31, 2021 and 2020.

 

The following table summarizes information about stock options outstanding at May 31, 2021:

 

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$  7.01-$  8.00   15,000    1.6   $7.74 
$  8.01-$  9.00   24,250    2.1   $8.71 
$  9.01-$10.00   30,000    7.6   $9.85 
$10.01-$11.00   32,250    7.2   $10.17 
$11.01-$12.00   91,250    7.4   $11.71 
$12.01-$13.00   33,750    4.3   $12.36 
$13.01-$14.00   15,000    4.2   $13.80 
$16.01-$17.00   15,000    3.6   $16.40 
$19.01-$20.00   11,250    5.2   $19.26 
$  7.01-$20.00   267,750    5.7   $11.60 
                

 

The following table summarizes information about stock options outstanding at May 31, 2020:

 

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$  5.01-$  6.00   10,000    0.9   $5.69 
$  7.01-$  8.00   15,000    2.9   $7.74 
$  8.01-$  9.00   27,250    3.6   $8.69 
$  9.01-$10.00   30,750    9.9   $9.85 
$10.01-$11.00   15,000    7.9   $10.30 
$11.01-$12.00   68,750    7.8   $11.57 
$12.01-$13.00   40,500    5.8   $12.38 
$13.01-$14.00   15,000    6.9   $13.80 
$16.01-$17.00   15,000    5.9   $16.40 
$19.01-$20.00   15,000    6.2   $19.26 
$  5.01-$20.00   252,250    6.5   $11.52 
                

 

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.21.2
15. Preferred Stock:
12 Months Ended
May 31, 2021
Equity [Abstract]  
15. Preferred Stock:

15. Preferred Stock:

 

The Company has 2,000,000 authorized but unissued shares of preferred stock which may be issued in series. The shares of each series shall have such rights, preferences, and limitations as shall be fixed by the Board of Directors.

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.21.2
16. Treasury Stock:
12 Months Ended
May 31, 2021
Equity [Abstract]  
16. Treasury Stock:

16. Treasury Stock:

 

Treasury shares are 558,834 and 553,934 at May 31, 2021 and 2020.

XML 33 R22.htm IDEA: XBRL DOCUMENT v3.21.2
17. Retirement Plan:
12 Months Ended
May 31, 2021
Retirement Benefits [Abstract]  
17. Retirement Plan:

17. Retirement Plan:

 

The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. The Company matches a percentage of employee voluntary salary deferrals subject to limitations. The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. The amount expensed under the plan was $288,470 and $158,191 for the years ended May 31, 2021 and 2020.

XML 34 R23.htm IDEA: XBRL DOCUMENT v3.21.2
18. Fair Value of Financial Instruments:
12 Months Ended
May 31, 2021
Accounting Policies [Abstract]  
18. Fair Value of Financial Instruments:

18. Fair Value of Financial Instruments:

 

The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.

 

The fair values of short-term investments were determined as described in Note 1.

XML 35 R24.htm IDEA: XBRL DOCUMENT v3.21.2
19. Cash Flows Information:
12 Months Ended
May 31, 2021
Supplemental Cash Flow Elements [Abstract]  
19. Cash Flows Information:

19. Cash Flows Information:

 

   2021  2020
       
  Interest paid   none    none 
           
  Income taxes paid  $43,630   $180,131 

 

 

XML 36 R25.htm IDEA: XBRL DOCUMENT v3.21.2
20. Risks and Uncertainties:
12 Months Ended
May 31, 2021
Risks and Uncertainties [Abstract]  
20. Risks and Uncertainties:

20. Risks and Uncertainties:

 

On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also fluctuated significantly during this time. The extent of the impact of COVID-19 on the Company’s operational and financial performance was significant in fiscal 2021. While the use of vaccinations world-wide have apparently slowed spread of the disease, the extent of the impact of COVID-19 on the Company’s operational and financial performance in fiscal 2022 will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.

 

As a result of the pandemic described above, the Company applied for, and received, financial assistance from the U.S. federal government as part of the CARES Act and the Consolidated Appropriations Act of 2021 (CAA) including: a.) $1,461,500 of income due to the forgiveness of the PPP loan by the SBA (discussed previously in Note 7), and b.) $1,510,131 of Employee Retention Credit income. These amounts are included in Other income on the Consolidated Statements of Income.

XML 37 R26.htm IDEA: XBRL DOCUMENT v3.21.2
1. Summary of Significant Accounting Policies: (Policies)
12 Months Ended
May 31, 2021
Accounting Policies [Abstract]  
Nature of Operations:

Nature of Operations:

 

Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.

 

68% of the Company's 2021 revenue was generated from sales to customers in the United States and 20% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.

 

83% of the Company's 2020 revenue was generated from sales to customers in the United States and 11% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.

Principles of Consolidation:

Principles of Consolidation:

 

The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.

Subsequent Events:

Subsequent Events:

 

The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.

Use of Estimates:

Use of Estimates:

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.

Cash and Cash Equivalents:

Cash and Cash Equivalents:

 

The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.

 

Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.

Short-term Investments:

Short-term Investments:

 

At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2021 and May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (16) mature on various dates during the period August 2021 to September 2025. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.

 

The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.

Accounts and Other Receivables:

Accounts and Other Receivables:

 

Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.

Inventory:

Inventory:

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

Property and Equipment:

Property and Equipment:

 

Property and equipment is stated at cost net of accumulated depreciation. Depreciation is provided primarily using the straight-line method for financial reporting purposes and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.

Cash Value of Life Insurance:

Cash Value of Life Insurance:

 

Cash value of life insurance is stated at the surrender value of the contracts.

Revenue Recognition:

Revenue Recognition:

 

Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

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. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2021, 43% of revenue was recorded for contracts in which revenue was recognized over time while 57% was recognized at a point in time. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time.

Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.

 

If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2021 and 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.

Shipping and Handling Costs:

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $146,878 and $420,786 for the years ended May 31, 2021 and 2020. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

Research and Development Costs:

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $924,000 and $585,000 for the years ended May 31, 2021 and 2020.

Income Taxes:

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2021 or 2020. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2021 and 2020.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2018.

Sales Taxes:

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

Stock-Based Compensation:

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2021 and 2020 was $154,343 and $143,097.

New Accounting Standards:

New Accounting Standards:

 

Any recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

XML 38 R27.htm IDEA: XBRL DOCUMENT v3.21.2
2. Accounts and Other Receivables: (Tables)
12 Months Ended
May 31, 2021
Receivables [Abstract]  
Accounts receivable table
   2021  2020
Customers  $3,184,970   $5,399,915 
Customers – retention   200,956    630,823 
Gross accounts receivable   3,385,926    6,030,738 
Less Allowance for doubtful accounts   6,781    211,267 
Add Other receivables   741,419       
Net accounts receivable  $4,120,564   $5,819,471 
XML 39 R28.htm IDEA: XBRL DOCUMENT v3.21.2
3. Inventory: (Tables)
12 Months Ended
May 31, 2021
Inventory Disclosure [Abstract]  
Inventory table
   2021  2020
Raw materials  $503,344   $658,024 
Work-in-process   5,076,377    8,586,404 
Finished goods   355,875    963,009 
Gross inventory   5,935,596    10,207,437 
Less allowance for obsolescence   100,000    100,000 
Net inventory  $5,835,596   $10,107,437 
XML 40 R29.htm IDEA: XBRL DOCUMENT v3.21.2
4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables)
12 Months Ended
May 31, 2021
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
Costs and estimated earnings on uncompleted contracts components table
   2021  2020
Costs incurred on uncompleted contracts  $3,372,276   $6,395,550 
Estimated earnings   778,011    3,816,527 
Total costs and estimated earnings   4,150,287    10,212,077 
Less billings to date   4,012,668    9,194,370 
Costs and estimated earnings not billed  $137,619   $1,017,707 
Costs and estimated earnings on uncompleted contracts table
   2021  2020
Costs and estimated earnings in excess of billings  $1,499,604   $1,754,573 
Billings in excess of costs and estimated earnings   1,361,985    736,866 
Costs and estimated earnings not billed  $137,619   $1,017,707 
Costs and estimated earnings on uncompleted contracts two table
   2021  2020
Number of Projects in progress   14    15 
Aggregate percent complete   32%   80%
Aggregate amount remaining  $9,333,701   $2,234,962 
Percentage of total value invoiced to customer   30%   74%
XML 41 R30.htm IDEA: XBRL DOCUMENT v3.21.2
5. Maintenance and Other Inventory: (Tables)
12 Months Ended
May 31, 2021
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
Maintenance and other inventory table
   2021  2020
Maintenance and other inventory  $3,612,000   $2,479,497 
Less allowance for obsolescence   1,999,161    1,600,447 
Maintenance and other inventory, net  $1,612,839   $879,050 
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.21.2
6. Property and Equipment: (Tables)
12 Months Ended
May 31, 2021
Property, Plant and Equipment [Abstract]  
Property and equipment table
   2021  2020
Land  $195,220   $195,220 
Buildings and improvements   9,584,087    9,457,142 
Machinery and equipment   12,366,569    11,242,667 
Office furniture and equipment   2,536,688    2,209,382 
Autos and trucks   24,818    24,818 
Land improvements   476,429    455,429 
Gross property and equipment   25,183,811    23,584,658 
Less accumulated depreciation   15,367,217    14,177,168 
Property and equipment, net  $9,816,594   $9,407,490 
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.21.2
9. Sales: (Tables)
12 Months Ended
May 31, 2021
Sales  
Sales by major customer type
   2021  2020
Structural  $10,137,468   $15,621,784 
Aerospace / Defense   10,183,399    10,771,129 
Industrial   2,188,774    1,988,628 
Sales, net  $22,509,641   $28,381,541 
XML 44 R33.htm IDEA: XBRL DOCUMENT v3.21.2
10. Income Taxes: (Tables)
12 Months Ended
May 31, 2021
Income Tax Disclosure [Abstract]  
Income Taxes Table
   2021  2020
Current tax provision (benefit):          
Federal  $(361,000)  $375,000 
State            
Total current tax provision   (361,000)   375,000 
Deferred tax provision (benefit):          
Federal   (20,000)   11,000 
State            
Total deferred tax provision   (20,000)   11,000 
Total tax provision  $(381,000)  $386,000 
Reconciliation of income tax statutory rate to effective rate
   2021  2020
Computed tax provision at the expected statutory rate  $143,200   $717,400 
State income tax - net of Federal tax benefit         500 
Tax effect of permanent differences:          
Research tax credits   (218,000)   (272,000)
Foreign-derived intangible income deduction         (99,739)
PPP loan forgiveness   (306,900)      
Other permanent differences   41,500    40,200 
Other   (40,800)   (361)
Total tax provision  $(381,000)  $386,000 
Effective income tax rate   (55.9%)   11.3%
Components of Deferred Tax Assets and Liabilities
   2021  2020
Deferred tax assets:          
Allowance for doubtful receivables  $1,400   $44,400 
Tax inventory adjustment   22,900    94,000 
Allowance for obsolete inventory   440,800    357,100 
Accrued vacation   81,400    60,500 
Accrued commissions   5,900    3,900 
Warranty reserve   23,900    39,400 
Stock options issued for services   238,500    230,200 
Total deferred tax assets   814,800    829,500 
Deferred tax liabilities:          
Excess tax depreciation   (624,685)   (659,385)
Net deferred tax assets  $190,115   $170,115 
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.21.2
11. Earnings Per Common Share: (Tables)
12 Months Ended
May 31, 2021
Earnings Per Share [Abstract]  
Earnings per common share table
   2021  2020
Average common shares outstanding   3,490,213    3,481,128 
Common shares issuable under stock option plans   1,674    8,663 
Average common shares outstanding assuming dilution   3,491,887    3,489,791 
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.21.2
14. Stock Option Plans: (Tables)
12 Months Ended
May 31, 2021
Share-based Payment Arrangement [Abstract]  
Stock option plans table
   2021  2020
Risk-free interest rate   2.31%   1.98%
Expected life in years  4.0   3.9 
Expected volatility   33%   32%
Expected dividend yield   0%   0%
Stock options roll foward
   Shares  Weighted Average Exercise Price  Intrinsic Value
Outstanding - May 31, 2019   224,000   $11.71   $228,132 
     Options granted   50,250   $10.30      
     Less: options exercised   10,000   $6.35      
     Less: options expired   12,000   $14.34      
Outstanding - May 31, 2020   252,250   $11.52   $209,835 
     Options granted   47,250   $11.26      
     Less: options exercised   13,000   $6.34      
     Less: options expired   18,750   $13.31      
Outstanding - May 31, 2021   267,750   $11.60   $271,426 
Stock option plans - Stock options outstanding and exercisable
Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$  7.01-$  8.00   15,000    1.6   $7.74 
$  8.01-$  9.00   24,250    2.1   $8.71 
$  9.01-$10.00   30,000    7.6   $9.85 
$10.01-$11.00   32,250    7.2   $10.17 
$11.01-$12.00   91,250    7.4   $11.71 
$12.01-$13.00   33,750    4.3   $12.36 
$13.01-$14.00   15,000    4.2   $13.80 
$16.01-$17.00   15,000    3.6   $16.40 
$19.01-$20.00   11,250    5.2   $19.26 
$  7.01-$20.00   267,750    5.7   $11.60 
                
Stock option plans - Stock options outstanding and exercisable
Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$  5.01-$  6.00   10,000    0.9   $5.69 
$  7.01-$  8.00   15,000    2.9   $7.74 
$  8.01-$  9.00   27,250    3.6   $8.69 
$  9.01-$10.00   30,750    9.9   $9.85 
$10.01-$11.00   15,000    7.9   $10.30 
$11.01-$12.00   68,750    7.8   $11.57 
$12.01-$13.00   40,500    5.8   $12.38 
$13.01-$14.00   15,000    6.9   $13.80 
$16.01-$17.00   15,000    5.9   $16.40 
$19.01-$20.00   15,000    6.2   $19.26 
$  5.01-$20.00   252,250    6.5   $11.52 
                
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.21.2
19. Cash Flows Information: (Tables)
12 Months Ended
May 31, 2021
Supplemental Cash Flow Elements [Abstract]  
Supplemental cash flow information
   2021  2020
       
  Interest paid   none    none 
           
  Income taxes paid  $43,630   $180,131 
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.21.2
1. Summary of Significant Accounting Policies: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Accounting Policies [Abstract]    
Percentage of total sales during a period to domestic customers 6800.00% 8300.00%
Percentage of total sales during a period to export customers 2000.00% 1100.00%
Percent of revenue recognized with sales contracts for which revenue is recognized over time 4300.00% 5700.00%
Percent of revenue recognized with sales contracts containing a single performance obligation 5700.00% 4300.00%
Shipping and handling costs $ 146,878 $ 420,786
Research and development costs 924,000 585,000
Share based compensation expense $ 154,343 $ 143,097
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.21.2
Accounts receivable table (Details) - USD ($)
May 31, 2021
May 31, 2020
Receivables [Abstract]    
Customers $ 3,184,970 $ 5,399,915
Customers – retention 200,956 630,823
Gross accounts receivable 3,385,926 6,030,738
Less Allowance for doubtful accounts 6,781 211,267
Add Other receivables 741,419
Net accounts receivable $ 4,120,564 $ 5,819,471
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.21.2
Inventory table (Details) - USD ($)
May 31, 2021
May 31, 2020
Inventory Disclosure [Abstract]    
Raw materials $ 503,344 $ 658,024
Work-in-process 5,076,377 8,586,404
Finished goods 355,875 963,009
Gross inventory 5,935,596 10,207,437
Less allowance for obsolescence 100,000 100,000
Net inventory $ 5,835,596 $ 10,107,437
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.21.2
Costs and estimated earnings on uncompleted contracts components table (Details) - USD ($)
May 31, 2021
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Costs incurred on uncompleted contracts $ 3,372,276 $ 6,395,550
Estimated earnings 778,011 3,816,527
Total costs and estimated earnings 4,150,287 10,212,077
Less billings to date 4,012,668 9,194,370
Costs and estimated earnings not billed $ 137,619 $ 1,017,707
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.21.2
Costs and estimated earnings on uncompleted contracts table (Details) - USD ($)
May 31, 2021
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Costs and estimated earnings in excess of billings $ 1,499,604 $ 1,754,573
Billings in excess of costs and estimated earnings 1,361,985 736,866
Costs and estimated earnings not billed $ 137,619 $ 1,017,707
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.21.2
Costs and estimated earnings on uncompleted contracts two table (Details)
May 31, 2021
USD ($)
May 31, 2020
USD ($)
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Number of Projects in progress 14 15
Aggregate percent complete 32.00% 80.00%
Aggregate amount remaining $ 9,333,701 $ 2,234,962
Percentage of total value invoiced to customer 30.00% 74.00%
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.21.2
Maintenance and other inventory table (Details) - USD ($)
May 31, 2021
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Maintenance and other inventory $ 3,612,000 $ 2,479,497
Less allowance for obsolescence 1,999,161 1,600,447
Maintenance and other inventory, net $ 1,612,839 $ 879,050
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.21.2
4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year $ 736,866 $ 633,703
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.21.2
5. Maintenance and Other Inventory: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Provision for potentially obsolete inventory $ 1,500,000 $ 180,000
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.21.2
Property and equipment table (Details) - USD ($)
May 31, 2021
May 31, 2020
Property, Plant and Equipment [Abstract]    
Land $ 195,220 $ 195,220
Buildings and improvements 9,584,087 9,457,142
Machinery and equipment 12,366,569 11,242,667
Office furniture and equipment 2,536,688 2,209,382
Autos and trucks 24,818 24,818
Land improvements 476,429 455,429
Gross property and equipment 25,183,811 23,584,658
Less accumulated depreciation 15,367,217 14,177,168
Property and equipment, net $ 9,816,594 $ 9,407,490
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.21.2
6. Property and Equipment: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Property, Plant and Equipment [Abstract]    
Depreciation $ 1,212,713 $ 1,141,110
Commitments for future capital expenditures $ 400,000  
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.21.2
7. Short-Term Borrowings: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Debt Disclosure [Abstract]    
Proceeds from Bank Debt $ 1,461,500
Current borrowing capacity 10,000,000  
Outstanding balance on line of credit 0 0
Uncleared checks $ 366,209 $ 523,344
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.21.2
Sales by major customer type (Details) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Policyholder Account Balance [Line Items]    
Sales, net $ 22,509,641 $ 28,381,541
Structural Seismic Wind Revenue    
Policyholder Account Balance [Line Items]    
Sales, net 10,137,468 15,621,784
Aerospace Defense Revenue    
Policyholder Account Balance [Line Items]    
Sales, net 10,183,399 10,771,129
Industrial Revenue    
Policyholder Account Balance [Line Items]    
Sales, net $ 2,188,774 $ 1,988,628
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.21.2
9. Sales: (Details Narrative)
12 Months Ended
May 31, 2021
May 31, 2020
Sales    
Percentage of total sales to significant individual customers 2100.00%  
Percentage of total sales to significant individual customer 1 1100.00% 1000.00%
Percentage of total sales to significant individual customer 2 1000.00%  
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.21.2
Income Taxes Table (Details) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Current tax provision (benefit):    
Federal $ (361,000) $ 375,000
State
Total current tax provision (361,000) 375,000
Deferred tax provision (benefit):    
Federal (20,000) 11,000
State
Total deferred tax provision (20,000) 11,000
Total tax provision $ (381,000) $ 386,000
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.21.2
Reconciliation of income tax statutory rate to effective rate (Details) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Income Tax Disclosure [Abstract]    
Computed tax provision at the expected statutory rate $ 143,200 $ 717,400
State income tax - net of Federal tax benefit 500
Tax effect of permanent differences:    
Research tax credits (218,000) (272,000)
Foreign-derived intangible income deduction (99,739)
PPP loan forgiveness (306,900)
Other permanent differences 41,500 40,200
Other (40,800) (361)
Total tax provision $ (381,000) $ 386,000
Effective income tax rate (55.90%) 11.30%
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.21.2
Components of Deferred Tax Assets and Liabilities (Details) - USD ($)
May 31, 2021
May 31, 2020
Deferred tax assets:    
Allowance for doubtful receivables $ 1,400 $ 44,400
Tax inventory adjustment 22,900 94,000
Allowance for obsolete inventory 440,800 357,100
Accrued vacation 81,400 60,500
Accrued commissions 5,900 3,900
Warranty reserve 23,900 39,400
Stock options issued for services 238,500 230,200
Total deferred tax assets 814,800 829,500
Deferred tax liabilities:    
Excess tax depreciation (624,685) (659,385)
Net deferred tax assets $ 190,115 $ 170,115
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.21.2
10. Income Taxes: (Details Narrative) - USD ($)
60 Months Ended
May 31, 2026
May 31, 2021
May 31, 2020
Income Tax Disclosure [Abstract]      
Deferred Tax Assets, Gross   $ 814,800 $ 829,500
State investment tax credit carryforwards   $ 368,000  
Tax Credit Carryforward, Expiration Date May 31, 2026    
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.21.2
Earnings per common share table (Details) - shares
12 Months Ended
May 31, 2021
May 31, 2020
Earnings Per Share [Abstract]    
Average common shares outstanding 3,490,213 3,481,128
Common shares issuable under stock option plans 1,674 8,663
Average common shares outstanding assuming dilution 3,491,887 3,489,791
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.21.2
13. Employee Stock Purchase Plan: (Details Narrative) - shares
12 Months Ended
May 31, 2021
May 31, 2020
Share-based Payment Arrangement [Abstract]    
Stock Issued During Period, Shares, Employee Stock Purchase Plans 1,470 1,374
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.21.2
Stock option plans table (Details)
12 Months Ended
May 31, 2021
May 31, 2020
Share-based Payment Arrangement [Abstract]    
Risk-free interest rate 2.31% 1.98%
Expected life in years 4 years 3 years 10 months 24 days
Expected volatility 33.00% 32.00%
Expected dividend yield 0.00% 0.00%
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.21.2
Stock options roll foward (Details) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
May 31, 2019
Share-based Payment Arrangement [Abstract]      
Stock options outstanding 267,750 252,250 224,000
Weighted average exercise price of options outstanding $ 11.60 $ 11.52 $ 11.71
Intrinsic value of options outstanding $ 271,426 $ 209,835 $ 228,132
Options granted 47,250 50,250  
Weighted average exercise price of options granted $ 11.26 $ 10.30  
Stock options exercised 13,000 10,000  
Weighted average exercise price of options exercised $ 6.34 $ 6.35  
Stock options expired 18,750 12,000  
Weighted average exercise price of options expired $ 11.60 $ 14.34  
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.21.2
Stock option plans - Stock options outstanding and exercisable (Details)
May 31, 2021
$ / shares
shares
May 31, 2020
$ / shares
shares
May 31, 2019
$ / shares
shares
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum $ 7.01    
Range of exercise prices, Maximum $ 20.00    
Remaining number of years 5.7    
Number of Options | shares 267,750 252,250 224,000
Weighted Average Exercise Price $ 11.60 $ 11.52 $ 11.71
Range of exercise prices, Minimum   5.01  
Range of exercise prices, Maximum   $ 20.00  
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number | shares 267,750 252,250 224,000
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Two [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum $ 7.01    
Range of exercise prices, Maximum $ 8.00    
Number of Options | shares 15,000 15,000  
Remaining number of years 1.6    
Weighted Average Exercise Price $ 7.74    
Range of exercise prices, Minimum   $ 7.01  
Range of exercise prices, Maximum   $ 8.00  
Remaining number of years   2.9  
Weighted Average Exercise Price | shares   7.74  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Three [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 8.01    
Range of exercise prices, Maximum $ 9.00    
Number of Options | shares 24,250 27,250  
Remaining number of years 2.1    
Weighted Average Exercise Price $ 8.71    
Range of exercise prices, Minimum   $ 8.01  
Range of exercise prices, Maximum   $ 9.00  
Remaining number of years   3.6  
Weighted Average Exercise Price | shares   8.69  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Four [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 9.01    
Range of exercise prices, Maximum $ 10.00    
Number of Options | shares 30,000 30,750  
Remaining number of years 7.6    
Weighted Average Exercise Price $ 9.85    
Range of exercise prices, Minimum   $ 9.01  
Range of exercise prices, Maximum   $ 10.00  
Remaining number of years   9.9  
Weighted Average Exercise Price | shares   9.85  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Five [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 10.01    
Range of exercise prices, Maximum $ 11.00    
Number of Options | shares 32,250 15,000  
Remaining number of years 7.2    
Weighted Average Exercise Price $ 10.17    
Range of exercise prices, Minimum   $ 10.01  
Range of exercise prices, Maximum   $ 11.00  
Remaining number of years   7.9  
Weighted Average Exercise Price | shares   10.30  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Six [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 11.01    
Range of exercise prices, Maximum $ 12.00    
Number of Options | shares 91,250 68,750  
Remaining number of years 7.4    
Weighted Average Exercise Price $ 11.71    
Range of exercise prices, Minimum   $ 11.01  
Range of exercise prices, Maximum   $ 12.00  
Remaining number of years   7.8  
Weighted Average Exercise Price | shares   11.57  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Seven [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 12.01    
Range of exercise prices, Maximum $ 13.00    
Number of Options | shares 33,750 40,500  
Remaining number of years 4.3    
Weighted Average Exercise Price $ 12.36    
Range of exercise prices, Minimum   $ 12.01  
Range of exercise prices, Maximum   $ 13.00  
Remaining number of years   5.8  
Weighted Average Exercise Price | shares   12.38  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eight [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 13.01    
Range of exercise prices, Maximum $ 14.00    
Number of Options | shares 15,000 15,000  
Remaining number of years 4.2    
Weighted Average Exercise Price $ 13.80    
Range of exercise prices, Minimum   $ 13.01  
Range of exercise prices, Maximum   $ 14.00  
Remaining number of years   6.9  
Weighted Average Exercise Price | shares   13.80  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Nine [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 16.01    
Range of exercise prices, Maximum $ 17.00    
Number of Options | shares 15,000 15,000  
Remaining number of years 3.6    
Weighted Average Exercise Price $ 16.40    
Range of exercise prices, Minimum   $ 16.01  
Range of exercise prices, Maximum   $ 17.00  
Remaining number of years   5.9  
Weighted Average Exercise Price | shares   16.40  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Ten [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 19.01    
Range of exercise prices, Maximum $ 20.00    
Number of Options | shares 11,250 15,000  
Remaining number of years 5.2    
Weighted Average Exercise Price $ 19.26    
Range of exercise prices, Minimum   $ 19.01  
Range of exercise prices, Maximum   $ 20.00  
Remaining number of years   6.2  
Weighted Average Exercise Price | shares   19.26  
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range One [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Number of Options | shares   10,000  
Range of exercise prices, Maximum   $ 6.00  
Remaining number of years   0.9  
Weighted Average Exercise Price | shares   5.69  
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.21.2
14. Stock Option Plans: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Share-based Payment Arrangement [Abstract]    
Common shares reserved for stock options 160,000  
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value $ 3.27 $ 2.85
Price per share of common $ 11.85 $ 10.99
Shares available 84,000  
Proceeds exercise of options $ 28,425 $ 31,750
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.21.2
15. Preferred Stock: (Details Narrative)
May 31, 2021
shares
Equity [Abstract]  
Preferred shares authorized 2,000,000
XML 73 R62.htm IDEA: XBRL DOCUMENT v3.21.2
16. Treasury Stock: (Details Narrative) - shares
May 31, 2021
May 31, 2020
Equity [Abstract]    
Treasury Stock 558,834 553,934
XML 74 R63.htm IDEA: XBRL DOCUMENT v3.21.2
17. Retirement Plan: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Retirement Benefits [Abstract]    
Retirement plan expense $ 288,470 $ 158,191
XML 75 R64.htm IDEA: XBRL DOCUMENT v3.21.2
Supplemental cash flow information (Details) - USD ($)
12 Months Ended
May 31, 2021
May 31, 2020
Supplemental Cash Flow Elements [Abstract]    
  Interest paid $ 0 $ 0
  Income taxes paid $ 43,630 $ 180,131
EXCEL 76 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( 6#&U,'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 " %@QM3TRO8F^\ K @ $0 &1O8U!R;W!S+V-O&ULS9)1 M2\,P$,>_BN2]O33%*:'KBV-/"H(#Q;>0W+9@DX;DI-VW-ZU;A^@'\#%W__SN M=W"-#E+W$9]C'S"2Q70SNLXGJ<.:'8F"!$CZB$ZE,B=\;N[[Z!3E9SQ 4/I# M'1 $YRMP2,HH4C !B[ 06=L8+75$17T\XXU>\.$S=C/,:, .'7I*4)45L':: M&$YCU\ 5,,$(HTO?!30+<:[^B9T[P,[),=DE-0Q#.=1S+N]0P=O3X\N\;F%] M(N4UYE_)2CH%7+/+Y-?Z8;/;LE9P417\OA!W.\&EJ.7MZGUR_>%W%7:]L7O[ MCXTO@FT#O^ZB_0)02P,$% @ !8,;4YE&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R M> +]O6N[!3+ MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,! M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2 MBW A(5M>5 TR M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$ MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH] M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2.FJW"$2M"/F(9 M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+ MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+ M.7\N?<^E[[GT/:'2MSAD6R4)RU3393>* M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.WF)&Y M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_# M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0 MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_ M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]! MU4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04 M" %@QM3I!TW_E$% !,%@ & 'AL+W=OGA(OH?BU5ZJ9[WAW)"7-!'ZNK4Q9ONQT]'AAJ=, M7\@M%W!G)57*#)RJ=4=O%6>1"TJ3#O6\?B=EL6B-KMRUA1I=R +1726 MIDR]WO!$[J];?NMXX3Y>;XR]T!E=;=F:+[GYMETH..L4*E&<:0-/CX_J=Z[QT)@GIOE$)C_BR&RN6Y+;;;9$PTT:F>3 0I+$X_+*7/!$G 8%_)H#F ?1-@'_N#4$>$#0-Z.8! M79>90U-<'J;,L-&5DGNB[-.@9@]<,ETT-#\6MM^71L'=&.+,:")W7)$V^;:< MDG>_O;_J&!"UMSIA+G!S$*!G!'Q*ODAA-IKD&XHJ?F&O M)/ _$.I1OX)G@D>/L_4%H8.SX5,\?"YW%R3P7+B'-"8H\ALXO0#-[U_C)VT4 MC/&_$7,>H#,,9%#B#AIVC&)BC\[;S M2+A678HN"Z;+9DP+KF(9V8E*P"PJQPZNE$_-7W_YY;^SZR>T88$V;(9V%^L0 M>B\GO(/+N@H/5[M[1)!\K[1$[W]!/7*FSB/5B-4DRC\Q:A\5FF1*O87">K)& MKMWV>NT 1:,E&D6U;H6)S2N0)9S,L_2)JTH@7,1K!]WA)<93>JX?-.&YY^O8 MVBXD;<[2ZB3A0@_CQ\]?[\GT]OML;0']P7 P MN!QBA*7=^[A/YX0S$4H%MNK@/I"E@5E I"(3F4%2(;M KKPDT<:I@I8QAEG7!Q^W\+>;$GL$; M'N1>5"+B_ZZ**3EL6"UA0+1P8?@N=1<(&!CQD*+4L#Q5W] MLW1E?2,%5AIJ1/K#;MN[]-#4E,6!UGAZ;*!,R17QZ;OU>[+D8:8@6Y58N-)$ MIBDXX]+(\!D^GBX\VB-;J,H[EF3\/09;5@K:J%+\@._B]K. :0F\3$,R(S+3 M.CN335QS+C&TLE301J7BNTS <9DZE']5N42J4<*!RLI &U6&XSKIL.J.Q=IY M1O7:K4;QD6N,K"P'M%$YF G#U6&CPZ[:V!&UD@Q7K"$K*P!M5 %MB)*ZX66Z5C MMT'8*1\_[+-^8790:9+P%81Z%P/(B3IL71Y.C-RZS;PG:8Q,W>&&LX@K^P#< M7TEICB?V!<4&\NA?4$L#!!0 ( 6#&U.(8E Y& 8 /@6 8 >&PO M=V]R:W-H965T&ULC5AM<]LV#/XK/*_7;7=.S1=1E-+$=VVZ MW?JAMUS3;I\9F8YUE427I/.R7S]0+6I;- M;'G1/KLVRPN]Z^K=6^ZH>_U-XA[NT5NK+M-WK8R^(9*G;6Z7JO# CJLNE^Y>,^$$<* MA(THT+T"?:T"VRNPUM$.6>O6)^GD\L+H!V2\-%CS%VUL6FWPIFS\,MXX _^6 MH.>65[JQNBI7TJD5^B@KV10*W7AS%IVA[S>?T&]O?K]8.'B55U@4>[,?.[-T MQ.P7^808F2.**8EH7[U:&Y]J+\"]@X_TX"-MS;$Q'W?&J,8A:2VX=3YAD1TL MLM9B,F91V@V2S0H5_D+]W)7WLH)7V%BD.E.\->6KZGY),<](BI.+Q?UQ4$)! MP@G/,RH.@B=HDP/:9!+MS48;=^:4J5'9W"OKZC&HG9WT& '.!29T@#0F)TC. M<1PH/P#EDT _%(7> ;0VM-IME(%.42@([FVE[!PURL50\P!-0B#$Z3"^H1PL M0YX($D>='E"GDZ@_0TP;I\U3#%L:>2?C/$\'V$(Y@B&F"1M9>W$ )R;!71NU ME>4*J4=H_%9%5UV$&"D5B1A #,62%,J;Q@%F!X#9JP"63:%KA9Q\C(/,PK?S M1(AL #(4XY@D61QC?L"83Y>[MONDA.(IZ[97*FF:LKFS !R"6RAKD5ZCV[*J M_-.8!WFXQ$F>AVT@(B=XP@6+.T%PW^KQI!O?M),5D,IQ-XRV=AP@8 DA),=\ M #4JF5"6DI&(DR->(I-@O\ (XE33\E'?#LKG6AMM!GNS)^%+""F8" M7!SI8:1G&T)?R&@8LHQ[ZA(&N&'K^^TX8!K@R($=>#[,BYA@ BTB'T/R4)[5;(FBTV5(521)"<=CE=*3%9EFJ\.$LI5/?BB)NA%R$!&98#3(MX@@ M@X038PG7\Q69)BR :790&5 7=6G]EBL>\)!J:)KC8'"*R#$88;,1G+1G)#K- M2'^W35WNT4[-*#1D&B((3_"PK<<$TY3E9*1 :,](=)J1/NZY_93QBXG9(.I( MA)^ +_-LF!T10<'2+$U'_#C:#4WST^D8<%3N4;@AZ7#"F,C8$&Y$$,B )2,U M1WMVHFRR,=TX7?S8Z&JEC/T5_0&$ZIZF.A/M&81.,\@5E(=ND/4OF*,W[S#E M4-BFH\(YDCL'K:O\#U8TFV.,_0?9C83F,W_["VS@WH??4&T^E9,YYGQ.!6\S M ^X2/,\PWVM' QW;4Q$6C%Q1.9PG(],A[4F*3I/4-4SA9Y#:A=R6D"!1C"'[ MP+L)3A@>H@PE<\&AM8S![&F*3N^VOBH'D^%+119NIQA+82,@@G!&)"GD+<_& M\K;G/?H"[QWE[=M?,DK$^W84;Q<-:-2+*< M,\'Y"/NPGBK9)%7&IY^NYW3>'#7R=DGL:/I%#ZEP&PO=V]R:W-H M965T&ULE57?;YLP$/Y73F@/F]05 B')*H+49JK6ATE1LW4/ MTQXV:=K]]3L;BDA+^B,/P6??]]WW79PCV4MUJPM$ _>EJ/3<*XS9 MG?F^S@HLF3Z5.ZSH9"-5R0R%:NOKG4*6.U I_# ()G[)>.6EB=M;JC21M1&\ MPJ4"79VN$+S<[=4%/D=2\Y+K#27%2C< MS+WST=EB8O-=P@W'O>ZMP3I92WEK@ZM\[@56$ K,C&5@]+C#!0IAB4C&WY;3 MZTI:8'_]R'[IO).7-=.XD.(7STTQ]V8>Y+AAM3#7[;_O0 XRB(X"P!81O!40M(')&&V7.UE=F6)HHN0=E MLXG-+EQO')K<\,K^BBNCZ)03SJ0+66DI>,X,YG#!!*LRA)6ET_!QR116ID## M,R8^P6?X #[H@G9UXANJ;CG\K*UTT50*CU3ZSAX@&IU &(2C ?3BS>C@$.V3 MX\YVV-D.'5UTA&YER#!=1@-R Y>\(MN<"5A*S=WM^GV^UD;1'?OS0K&H*Q:Y M8N.C/2Y+XEP9F=V> #45I *G((<;)FJ$)=*&[>M06QORJ2.W?\J[-#@-PCCQ M[_KM>RWK0/FX4SY^AW*G4,-Y;0JI^#_,A]0VA).>CEG@/D_TOIYWH#CN%,?O M5GP"5UK7PW+C9S+&01R'TZ?M' SN7NM=0^A]02P,$% @ !8,;4XVG@;9E! M>P\ !@ !X;"]W;W)KLNY06]9*O1TM#5F=S<>Z]669TS?RAT7\&8M5<8,W*K-6.\49W'N ME*5CXCC^.&.)&,TF^;.%FDWDWJ2)X N%]#[+F'I_X*D\3D=X]/'@.=ELC7TP MGDUV;,-?N/FV6RBX&U@>W\UQ8!URBS\3?M2U:V2E+*5\ MM3>/\73D6$8\Y2MC(1C\'?B?^6E(,_BK62J\U]T+&Q=,%[MM9%9Z0P,LD04_^RM M#$3- ?L]#J1T($T'VN- 2P>:"RV8Y;*^,,-F$R6/2%EK0+,7>6QR;U"3"+N, M+T;!VP3\S&PNA99I$C/#8_1BX _6R&@DU^A1K&3&T0WZ]O(%77W_XV1LX(/6 M;;PJP1\*<-(#C@EZDL)L-?HJ8AZ? XR!:467?-!]((.(3^P=47R-B$-P!Y_Y M__9V!LC0*G8TAZ,]<&6 JJBAO^^7VBC8F?\,H+L5NINCNSWH+RSE^AH);KH" M7_AZN:\]JH<9(9X3^2Z$Y5"/2(=A2$/LU0S/Z'D5/6^0WEQJ8W?)1LI8(]A# M<1?- L.O?1U'E+J1YS1H=AEBUW6]'II^1=,?HFFSX)W>L16?CB#-::X.?#3[ MX3OL.S_U_?ZBI-9HI^0ZZ0R]WZ)*<>#Z43/R;;N(T,")G&Y%0:4H&-X7D/(2 ML;E&&RZX8BEB(D8LAMR0V,UGLR+B;Y#F-===](,6+<\C?A"X#?H==A%U7=Q# M/ZSHAY=>D-]WW.H2&Y04)^XJA17JS$=AB_0-H1YQ0MI0US:DU"%^V*,NJM1% MEU#W* R'UZ;W>$?MX%/?:RY1VPIC[-3,SC1@YU03G$NH6+!WZ"I6KVBAI"G+ M,EQN%,M0*IE T&5L8#L*KCMW8LGBC+_K8\]I)H?/T$4#*1C7JB.^1"2^9KM4 MOG..GKF!0F #,5<\[LX?Y2?/9'O8P;290#[#;5 V.5\-MQ\YTK"W[OQ?LJGK\$,< M1EY3;]N.NMB+@C[!I\X!#[<.BUZ^Z&H)V0+J;G>SV6X2;J"5<=KYHFU(0[]N M=\[\U$S@BW<3O\$H-K#[_%9[AAV?=*Q&VQ#J5=2_&J=V @_W$P],)ZN\B8B3 M=&_' ,Z4@&H+/1"<'&">P4KI+5/="@KTL$;,N6V=\"ZC,&A0']?&F(RK33[= M:6"P%Z88$:JGU01YG\]-C>$JD&O*-)7:#;GXR'+91)G=,Z!R-.4\,,=3=A^ MU$.]EP>/\68K]0-K/-R1#5U0^64WYVID55ZB.*69B%D&.%V/>K?HTPP%VJ! M?(WI7IS= TUER=B3'MQ'HQ[4$=&$KJ1V0=3EF4YHDFA/*HYOI=->-:B"B:Y(G\I'M?Z:+JD_%^#FTFWF]LHBG6*D03,21P-X@Q,R"Z6:MSA M=-KM])%*M:>4 C/"LSC;B"Y?LVY??ZG]*G)^Z&1JJ66JULJNULHN/#LMG@N' MY8+\^K(BMU+R>)E+LDPHD$R)PM4"FI;GZ-PMG.OSXWF,(/2Q.[2>S^5OPD(7 M!T%H7^*F39P=NC#PH%,!+UCBBB6^%LL^N*.;.-,K!NY(0K(5!42"!W*X 1CU M@0U1:%+B&(#WFA)-F%F))JY;":=2PGE="7 O1*XRQ :9EL\YROMNK8!',EAHFYTP@5.S7630C"@=U"Q:VHN%>CW&:!?)]'$>-AVX25JYC92>("1YV,S5Z_BZETO@6=9U)Z]-C3Q]TS9&SJX M)D$3%OIN"+T:;MK$*:5PX ;0+(-?R>!WRG [OY_TCT5DH$MYI#@?='$!MYR3 M;%,4FC[X3(7"4@H^?&9"?'S[ 3L-FDI".PQ]SQQ26(44=H9T65"J_?*NHV\6 M-F(=U:8LFI437?10=HA<"-O.ZE,E1MVE^$?/ZL#POF/*;Q/.G-]- M9$M^6V&PO=V]R:W-H965T&ULE5G;^$T_" M?#\\*GA;=%8V>2DJGW2CXC9:7!FGVH8U-K@S=Y99?QR2CX MFH.>6:YDI661;[@1&_1DX ?6R&@DMVC%]1Y]@G76:(Z^/WU$O_[RV^W"P*16 M=9&U$SPT$]")"0A%7V1E]AK]46W$YMK M!VD.D9\@/U6OS"7Q$COR.**7'@ M6?VT-O: 85W\6&V.39C[>A"*F[S:-0F9FUSH&X_=H+,;U':#";M_007G529+ MX0IYHQO6NK903TN"(YJDX>WB=!F*L1S#-$WCJ).[ A=VX$*OT_>;?R$SFT0Q M$JHYDU66%P)5'6H[;M\RFT3;.HFV2I9(OC->40^@7:X-DB\ &5H9QHFXYE9@#$> /1. M9'GJ1A]X)NYFL(0V'F*V1)Z42#L/4J\'CTJ>\IIN;*#SZ@3Y*M4KDFOH>$)G MHLJ<7J6.L&,\=LLAEUR)7:$FN._(^(U4W@JE(#_.E<1?W/G1VKE$,*<.H XY MDDX#O: .X@\P?X5=!>0U1-JTM R/.\7+)G4@[CL@Z4IH-WXRQD^"R$9[Z($7 MR/M3B-#>1^IM=:L]KW8"2K9"TNR% DZ&M:D,XEH+:'^\VJ BY^N\>+.5D9Y3 M"/,&]C[+Y+%JK3?30G,3^8FOBXE48(ZDC8(4Q\-(C@7G88!)E$YD0T]8Q,]8 MG\\%YL07C*:EF"4XI$-\8\$$![%E>B>\GK)(^$8W$ >>;\[MS!W%7.-LFQ,\HW2W_,4_, !Q$;58Z#T)(HF5SNGM"(G]%64K<) M*K3)RWK_*+BJ@-KK:A$OP&KU/A)JH["C3C_&Y$7#(+V U[HQE@L3$J=D@N5( M3W/$SW-=K1WXJRTO)\HQT04DACXU1#F6FS,:3H+LF8SXJ0Q *KMC@*0H8?-@ M-Q%.G&-*FK,HN2B>%J=#CF#,@IBYD=*>O*B?O+[6W8JW>'W%1L>L%))@M(5U MB!%&HB"80-JS%_6SUT.;EM?)FGG2VNG%F,.@8Q R3&"'','@QU3 >X*B],V# M@FM3[01+1R!BS# )ARSA$$P3QF@R<7"@/;51_WG)LH1^Q_Z?]OQ#_?QSG_UW MA.U>O0N!A3PH&Q7SVJPE?#K8\XHS*F/*F9.(DH2,PN*2I(R0,)F(2T]/U$]/ MGZM,":Z%S4:]E\K,C5!EO6MM3UI.Z XBHB$P MZZ/>B1='8>-?Y%L[JH^*3^RSJ8O#TG'076))/$&UM"PYH0]SD8GU#'] M0/R@L:?1$*U+DH:4)5.Q[IF*)M[2^917$,IWE$Y/+]1/+T]]PJVE O7);N>U M\U/[\#9,CL/38.=_?1W3$Q#S$Q <0#(A-NUU@SUIV_QK6GM90F_0]BCNM88B?4,9LXH3I()\0QF03;LPY[FW6R M^FC45;[ML_6#;;;0!J9Z%AMS2QA0$L?#PG<(PB8E@3-V. '_XM+.?\!:30%& M<[06N[RR?.\$[SIGD3!-Z C]6-*&/J$3C8OU1,?\1.<#+ZK-%/+Q72#%L(>. M<#!$[KA='/K80%]*[?N5 ?ML[?A8TQ MO7IHZC9\/-KT?7=UWSUZY/0>:,KWM34)^>GIV]/ M&FW;HT\?^+=O_M,'-_2U;G1VE'[[;]::G'TX^?>CT MVMR:_I?NF\>WDY%*91O3!NM:YG1)#IC9E3Q0T_MR;&U/71 AL_"O2/!J/I(WYYT3]!Y8=LBQU,#>N_KNM M^LW'H\LC59F5'NK^N]O^V41YWA"]TM6!_U=;67OQ[DB50^A=$S>#@\:V\E<_ M1#UD&RY/G]AP'C><,]]R$'/Y1??ZTP?OMLK3:E"C#RPJ[P9SMB6CW/8>3RWV M]9_.CM6MV$.YE;JUZ]:N;*G;7EV7I1O:WK9K]8$3L#LR/%YXOCS^;,4?]([]?ILH(?=Z M5,!K)O?Z"7('Q%3_N%Z&WL-A_OG, 1?C 1=\P,7_3HO0J=+LW'(X1E M,/[>'/U7AQ;CH>JONA^\H:5_ZXS7%"_X]6>]JYU77\R]+4U8J!_;\EB]Z#=& MW;BFT^WN)3RQ'590%'8'I=NJ0+S5^*0"#JB-6GLW=$3WWH"58!M;:Z\Z[ZJA M[(/J-[I7&WUOB-!.57:U,MZ 2]UUX$T848">& K&AV/U\P92/J:E(8!MRWJ MFQ6V5:YE@3@L%4B9M?,0]KUJ=6/JW4+=&AL:6ZHONH'0D.^'>K"5+JZ^@T/R(JW&U?>*3B/\TMZ M7OS%_@LDU1=KU&WGL01[?K5+T?!T\$^ZW,"J55K$Y]VPQ+!7/^C>>5'#$$A( M=:^]=0/TM^N@=TC9" 4/L0R.[!I6(JB XT',LRA '!YAZYWJW:10M=W8WQ4'@+!O:$(L 2]-LJ=BG2+EMG;I/,12JE M^R+SGS\&%1R\Q(G308-8:&O;[TC(QT=O-_ .I>N:1)[3J5V[?E4#X'%&" 9G M0V1;F6,HMT5V8854#D1:!ZD0W'<%].E Q6\MM*HE+EC+0==8N/3NSK38M&W5 MVU=@+=082DS@-R9-9RLA:V).:+6%[4HNK853P"6IA6$)NJ\D5$,"E4]^- MKJ'1&^<[%SWOA?SV\KBXAC)MVQO_*K)'NFF#+B7TZ(BEKL$?!.- 71KHQ-2( MOI:YMV3]3%H"GF6 $Y+"O]Z3,** Q/5&!V7N=3WP=L,K^)S\X(+,T+D>#TDQ MWI0.$,:\XT%E0UF[,'#$LTH.ZC"Z,2\@53^]P]ZS!>!>P-TWT%X?X>Z=36TE2@_'<,?S'0,DL$8 M2:,TT:\5%T\YDX]V@_2D(-M"KGX0-VU0C)B'TK F T,(UDO ?4)7OG!V7N(*JADBJ4CQMC]*$\@%5BO""?,(J6H M#HGE(7IZZ4(OV48VOCA[2^6(U#%3AJQX<:9[I!KK*G4]K)$ A7MH_):"L$'2 M+O#+&V! BPZGMO\&*P#7BC:OT>%(3 !Z F4C]OLE0T. 6CCU4.DC0(%< 0O M3Q&HL"!<;VB&FJ7CK,./O=E0@W//I0O2\4*UAI87:"R,]^Q6]+OJ]0,%TO?$ MU2-NHH>3;NFXF;6@DLJ0$;G(&$+21>A,276A0J($1JUBQ:4:@PBN54'!)JCO[D6M8C%$[?)I(%Z8 G0H< N)T:HHDKC<8 MS&)R)5W^C0WSW93&,ML45/ES,9R?GK-B)I_5;438(D-I\P U4SJBP*ZI'164 M1'F%G6V585&8E2OP]GM+^N!DZ-V291S:2,72M[$V2,E.JW*C_=K0<3&D0\%( MGD3' ZTD 7-?7*,Q9R"D[K8BC3)^D5>%)GHO&36JG\4=@CA99<$A)8/$Q['Z MG,H%+NY%/Y9*MDE<9"1X8Y[)J"@8Z'2$77 M"YK$!$-F!15$3]["P*@+?1?>E:^:X=?*^M"_LNTB?J)B6S#MFZ=ZN)?Z[FNJYJ_FOT]5_HQ%/D<@ M)$<

,:WF0P- -I\*3[U,M>S7^:$.J<0G<7V3U(<#"/HAI$%0O"_1 M\!EH4>_E>2Z?J2V50QTW21"_L8&WQY:, !B@;#E""0E2(T@UP8A?$KS>K&J! M+A&%&BK1>8&MDI1S%C*D0UJDE-+74F.B^-CH=BWY/W$:RI:S=^]#WJR(:9BG.G;0!8,OM#.>_X0@XM^CX36Y@7C$(SL_K8J M3V%E3O'+(Q9QS8$M%Y* M]O$,\] 7>[')J_?8ENPG%CFL)[CG#RY7+E<9TU0%9SX*D")9*G??/4^D[Q&/ M91'%11J4D7KA91 +S3=5C<-$()\*Y-^YWZ:FM#22 /[?2.,T@L+]:> M^@.JIFK3"\9RU\QE&=>H B@KV\^19Y+J&3^=>?KHY@70V7/7DH->38Q 9!GB M4;?TU''KVI12&D# >$'[O/*F[AY,BB$3?4.:/2H&8A20Z-;+6O MHC3<(5+T/&G]'Q,/G'.]B5U X&N(M,U4J7E!HX,%'5?3Y"J+9"AOECO )6@@ M25MXTH)+Z#'HJ/N+@+[G*LF,T,$+FE7%$ MXH3];(+ ([LJ-4K(H[#(HL@Z#4%Y4?[23+;@4CQ%@VTGEWHZ<,B\9SF6RKR0P=QL>DD+,P0=H&%T]+$VVH^ML<(=8U_2JM@"A[%=IQZ=,OJL ML\7_%Z_5FW?T#Q^^)1%C* D[_:X3M:$26[O>;1WM)P M=;3M$J6]C*RY(Y5B2")P+U1!D%J7B"Y%5AGQ>)2&MHLT+X@A2W7N&,:IF8GE M!!V.T$CG+]) (0O$B#&STFJV.4[#"B*2LF>-5,4CZ)&94<39WN=8/,3,82H' M6(0'KM+]!_!ZKOP,0:E6(Z6Q9TEF1G-#5M1U%OO")S?C/2Q$L*8G]Y<9958# MK@X7=#0(@(.M;.P&J683R@("XMG%#+/'3!15!7?=@PZ2!K!$,E\SCX^&2C1, MFFM@G.'':Z,QQ8_"%U%DRCD[0IMV/TL3DTB#\/]Z8JD:INDN?)L(SW-0AMA4 MDPA&/,9 M2]+HSG8=FQM<_QG_D?M!C8%&A;.'F_1P5!QW:#(,C)UP <::B#DU_,Y2O2GS MKMF82]KA52S,@JLE =)LYODCT?^N'?V2L.L SD\G%X]/IIM'[%^DX;JTH!7$ ML(%'J?>CC1+F-/FURNC1S\JW?TKQS"ERK?![=7;Q=G'Y[E)=P)??7;Y%TQ?@ M3J4,F[\ 6HG:!V-,WM>9<\G9]OCL3AH W:A9T6-#/[I_&)Q>GJJWER^X;\_ M2H/^,\TP)LPGU(Q^NN'PO"5@YR7WR?]5_<.WJQ1B-41(JD1 MDEB3\TA\I%L9VGQ)8U(:)L2+/RY5(HK3)'"O0DALCH&_&GAH3!2HQ^6KJU(N M7\ 13:?]=#5-#Y:FW](M6!26#SR43&F,*7F&&2OV&)MS'R4;*Q0B7.MM/O4T MK6:&.=1Y>L(5VZ-Z3(GV17.1R4A>\]5-O2LZ;;D?SB XNXGY8R@Z0I78UX+P MJ$ U7AAPS2W'9A,=('(?^Y]Q97Q\DB)#@#0GBI_1UECI!_^7&)NQ#2M54V[@ M9J@L_<#N%EFA5B<[2UX78&;Y)BN[EIU?#]'-]2P[@1 EI_GY)) G@JV;CDQ" M[QW]^,0L!'BXRDK;NS8*Q>.:=,R4,V:*I:DMP -G]=*8I_ISO'5RX$WS12Y% M-MJ0E:E&Z&1NR*2,V0-RODS6.8"8%2J>'3>L$S=GE\@\G+HB>MP8SZGJ-\@1 MT$[$PK^ARI)F$5+1PW' P=0FQS*_!:8]( ;[O?<_1H7'&7&(J":.SF.&+'-P MY\F7_69 KT@NMB5O2>03HKMJ33D:4F<(T.3_+($>.!><>UUS$[H MLLPKP9"Q)2$SH^IV.V/"_&)MORD?*QJ)7O8_:="G)BWZXS3;2+0+FZDR&V*D MB=NC*2"IFCINT7!@K0CK,Y%3^&!/,4;!@+TX M_=,[]5>S+;(WKF[I+@*GTQ6/1*Z K+P%H ZMA&VJ\9*L>'%]>_-2K0<$+\$$ MCUDLS[;X%0E+C4XCUX(TQ4LSIFPZ/1_<'*M#+YN=9*_VP9O7_ )CD!=NY"V_ M\=?Q'35P6BXO6/Z$#IPN#6NSPM;3XW=OCF08E+[TKN,7!9>N1^CP1YH8 M&$\+\'SE7)^^T 'CFZ.?_@-02P,$% @ !8,;4WNY.'5' P +@< !@ M !X;"]W;W)K.CU0$F2Q2Y%:DH[C?U^0DA6W37)I+S9! 1^^#R3 ]4GI M+Z9!M/#4"FDV06-M=Q-%IFRP96:J.I3TI5:Z999,?8A,IY%5/J@541K'\ZAE M7 ;;M=^[U]NU.EK!)=YK,,>V9?I\BT*=-D$27#8>^*&Q;B/:KCMVP,]H?^GN M-5G1B%+Q%J7A2H+&>A/LDIO;W/E[AU\YGLS5&IR20JDOSOBIV@2Q(X0"2^L0 M&/T]XAZ%<$!$X^N &8PI7>#U^H+^O==.6@IF<*_$;[RRS298!E!AS8["/JC3 MCSCHF3F\4@GC?^'4^V:S ,JCL:H=@HE!RV7_SYZ&.EP%+.-7 M(A(/6\^T2> MY7?,LNU:JQ-HYTUH;N&E^F@BQZ4[E,]6TU=.<7:;3F%7ENHHK0$F*_AD&]3P M@"7R1U8(-#?KR%(>YQV5 ^9MCYF^@IFD<*>D;0Q\D!56?P>(B.#(,KVPO$W? M1+QC9\B2$-(X3=Z RT;1F8?+7H&[D@>_[PIC-5V./]X SD?@W /G_VLU_ROF MQ)7%U2:>[/V-06W@'61ALLS#U2*F]2S,5JMPEQ>$RS28_:&4HZ26['G,2=K:0 MATD:A[-Y[B4NDU68+Q*JS470E7.M53LTE!.OD6:805_4UB-/N'Q4O,0*K+IR M/!$[A(Z=6^_$ E'2EK:<"7&FCK5-@Z("FI05EP8\4ME(+14*V@.'OL/5%E\NQ/R]D&2T67C%*1%J;AZY%D M4B["]+?,W4!*]@_:/1,R!\9$7;\(XJ_J]*5.BZYF&!7^X">U 7_J_3@;=\?' M8-?/P&?W_B6Y8_K I0&!-87&TP7-7MU/Y]ZPJO,3L5"63MDO&WK04#L'^EXK M92^&2S ^D=N_ %!+ P04 " %@QM3CM^08(8" !(!0 & 'AL+W=O MAAT4FTF$RI(G*77[[T?9B9L":PZ[6"3%[^/#(F>--D]VB^C@I9+*SH.M M<_4TBFRQQ8K;"UVCHINU-A5WI)I-9&N#O&Q!E8P2QH91Q84*%K/6=F<6,[US M4BB\,V!W5<7-ZQ*E;N9!'!P,]V*S==X0+68UW^ #NA_UG2$MZEE*4:&R0BLP MN)X'E_%TF7G_UN&GP,8>R> K66G]Y)6OY3Q@/B&46#C/P.EXQBN4TA-1&G_V MG$$?T@./Y0/[35L[U;+B%J^T?!2EV\Z#<0 EKOE.NGO=?,%]/;GG*[2T[1>: MSC=- BAVUNEJ#Z8,*J&ZD[_L^W $&+,/ ,D>D+1Y=X':+*^YXXN9T0T8[TUL M7FA+;=&4G%#^ISPX0[>"<&Z17L!7]8S*:?,ZG46.*/U%5.SARPZ>? "/$[C5 MRFTM?%(EEN\)(LJE3R@Y)+1,3C+>\E=(XQ 2EL0GZ-*^OK2E2S^@ZXN#:V$+ MJ>W.(/RZ7%EGZ$'\/A$AZR-D;83L?SMX$NZ';FIK7N \H*FR:)XQ>,\Y\*WP M_6"#>][0SW=H!)<6SB!G:9AF&4G#?!RR)!L\T@R<"W5>&UV@M9"';#0,T]$( MQF$^'H89RP8W0@EZ,25LM"XMI'D>CDMT5FDT[PQ8*O5.N>^B]M5\3E]UTO+EW.^:6FXU0%B2N"B[]02P,$% @ M!8,;4^]!8/ '! CPD !D !X;"]W;W)K&UL MO59-;^,V$+WK5PR$[$V(]2T[< PXWBU:H-D:V=WV4/1 2V-;78I422I.^NL[ MI#YBHYL 1=%>["$U\^;-XXBCY4FJK_J(:."IX4+?^D=CVIO93)=';)B^EBT* M>K*7JF&&ENHPTZU"5KF@AL_B,,QG#:N%OUJZO:U:+65G>"UPJT!W3;KU(W_<>*@/1V,W9JMERP[X"I]7<. M/]=XTF]9Q\R!/W^-03V;Q2LFU^X53[UL4/I2=-K(9 M@HE!4XO^GST-.IP%S,-7 N(A(':\^T2.Y7MFV&JIY F4]28T:[A27321JX4] ME$]&T=.:XLPJO8:-U$8#$Q5\T*:F0I$LID0M#AI(N"^BE$W+T>YOI#"*E-0W MRYFA]!9D5@ZI[OI4\2NIHACN*?RHX8.HL+H$F!'OB7P\DK^+WT2\9\^01 '$ M81R] 9=,6B0.+GD%[CWN42E7)2D2P(:UM6&\_A.K +8*6U:3887ZR1Q1P5IK M).7>U[KD4G<*X=?U3CM]?GN#3CK121V=]/\XFO\HE6>EM_J'7@]0B[)S&E)( M=Q92CB%P!4F0%'$0%SG9>9 LLB#+0N\E+8YIBV(>A%%$ ?,H#[*X\#Y+.A " M&[GBWX/2(,K"()X7$-%?% =A47@_HM:PJSEW+D9"14'D&M+S/)_#(H@6*=$: MRW@%6TCC4&CO"J*D"/)H82W"*8(B+&#=R$[8>&H&DH)WU.AD /4+74!6#B:> M"8IN$LY$B>#>7.UU]$8HY[67G"Y*ZU*RUEY+L#>EC8(DCX+%/(,BR8-YGO]+M3Y?U-O/!7K;M!-" M&V8ZQVFKY.]8NN;R6B4/RG)E[M'Y#>!H6)7.!?O8-3M2]A(%)I0HA2CSU@=: M'6Q'M*A*% ;&QH4DAGV=YXE'5)PE K]K<\D4PH#10I_5AA-GVST-FTCC9Y*BSE M09!"3B!"KJG-)AJ>PD<4!&Z''>=@![>MM*^ZZI2E:@//1(MA3[<7T7JF4[N& MAP%A2E2=QUD?36EM3P\8WH7P=)AJ4$=?M/_NG_=:?[XV[0X/M7 Z#QN6QY"F M5_!J[$?(W2DDW[I]9V=#DM0^N$\!320(II^7T^[TM;'NA^R+>_^I&ULK599;^,V$'[WKQ@8>=3&DN-G>+5V_F.HF2,]-\:&ZW$=8_MV,@EES8T* MQZYEBYN%\XV*V/KE)+2>5964&C.9YOG9I%':CF^NTMF3O[ER733:\I.GT#6- M\IL[-FY]/2[&VX/W>EE'.9C<7+5JR1\X_M0^>>PF.Y1*-VR#=I8\+Z['M\7; MNYG()X&?-:_#P9K$D[ES'V7SKKH>YT*(#9=1$!3^5GS/Q@@0:'P:,,<[DZ)X MN-ZB?YM\AR]S%?C>F5]T%>OK\<68*EZHSL3W;OT=#_Z<"E[I3$B_M.YES\_' M5'8ANF90!H-&V_Y?/0]Q.%"XR%]1F X*T\2[-Y18/JBH;JZ\6Y,7::#)(KF: MM$%.6TG*A^AQJZ$7;TZ/Z1&IBVR5+9F4K>B'6+.G=W;%-CJ_>7LUB3 DXI-R M +WK0:>O@!93>G0VUH&^L157+P$F8+BC.=W2O)M^%?%1;>BDR&B:3XNOP)WL MO#Y)<">OP#WP@KWGBNY=B"&C>]7JJ(S^S%5&3YY;I;'8!^,V!(Z!'G0HC0N= M9_KU=AZB1TW]]A4ZLQV=6:(S^W^3\)]!1Q).B6D^^E+4)5&]%:4C.LG.BFF6 MYSG6TVQV?IG-+L]'WW,(I QZ.ZEB2I";!V9D59P569WF>S6;G M?V@N&:SXC=-JN1C^K$&3H^ZLQ*H M9!_!B73D)L UU:4RHQ<)@R_BA67E(>(;JKHDKD&Q"^E>VPJ#R6N&^[62)H!YM [- M-TFW!#5M.Z$&GWO_9 +#6XLQO8^[9?2>1^]5/1MGW#(Q4M5*4AQ2.+;RAS3% M5<;\=IXSA-;B^]%(UB5M!SFHE22AE !5P/JB4%N'4HI:F8.0O33RT$E<:8&^ MAY1T2_8"?\Y+0<69\ZY;UC"VPG=C--!8J%(;!)PE$*7I*@%+%Z A7/=V8]T# M#&KI3)Q?HP)J)X'' MX@$Q5+7A"\)-Q@@A$O%KK4$H NPN)G)?$6%FJEM%%S ME'9HE7BT:WYJ.X_L!:'42@[U-MZIQN78\(I-H#4"C<@%1[Q2IDM=U)G75.!KUQG4#%.E4/Z\>E5]J&Y#4!53SX_/3,?G^R=)OHFO3,V'N(AX=:5GCE<=> M!'"_<'!LV(B!W;OQY@]02P,$% @ !8,;4_Z5J%@2 P B08 !D !X M;"]W;W)K&ULK57+CMLV%-WK*P@A2V(D4M3# ]O M>)(^@ YJ)&VZ*+K@2)1%C$0J)!6/_[Z7E*UX@LPLBBYLWDO><^Z#TM'ZJ,V3 M[81PZ'GHE=W$G7/C;9+8NA,#MS=Z% I.6FT&[L UA\2.1O F@(8^H6E:) .7 M*MZNP][>;-=Z M@)_D4>LG[_S:;.+4%R1Z43O/ MP&'Y*NY%WWLB*./+F3->4GK@M7UA_RGT#KT\IYI4_G^=P!:C25P#T#*"A[CE1 MJ/(]=WR[-OJ(C(\&-F^$5@,:BI/*7\HG9^!4 LYMBQNT-W#%QIT05PWZ\&62 M(PS=W:X3!_P^*JG/7+N9B[["12AZT,IU%GU0C6A>$B10V%(=O52WHV\R/O 3 MR@A&-*7D#;IL:38+=-DK=)=.,=KW7+F7#:._[QZM,_"8_/-&*K:D8B$5^U_F M^E^Y(C\8/YTT^LV?O$-DE6-*TV]6M)MDWTAUL $KA]'HK\*C+5KAO&(XK4JP M6%YBPFCTP.L.\ILYE5BF0RC.B@+GQ0H1@BFCN"C*Z/>VE;5 [624=),1WX$H MSK,"%U4%%DU7.*MH=#C(K;\.X*>X M)!E8A,&/I.B/3J![/8Q!NGFKIV&U_Q)H)J/TO%^9FO"D&VD6\1' MF,"S!%T2_0GX69KB-$U_].@F5_(P"',((NBS3&PO=V]R:W-H965T*J7=(BJ)]I=Q[+(2 M*^&&9H^:=[;&5H)X:HO8[2V*/(@J%:=),HLK(76TG(>U6[NQAA5J MXNV#P7>)C3L9@\]D8\S.3[[DBRCQ :'"C#Q!\.<1KU$I#^(P?G?,J'?IA:?C M(_U3R)USV0B'UT;]D#F5B^@B@ARWHE9T9YK/V.4S];S,*!?>T+2VZ7D$6>W( M5)V8(ZBD;K_BJ3N'$\%%\HH@[01IB+MU%*)<"Q++N34-6&_--#\(J08U!R>U M_RGW9'E7LHZ6YT.X+XVE]P]H*U@9RWJI"W@QNE;Y)O!$'&(\&D";IZ WZ .71X9\ MNW,0H(S00(8$8XMW9S :3&:CP31)X.%$4 H'XE%()38*6<5VR2!)PN,-^7BD M VU>B&J'K(),N)+OH.:BY?(DV(I,*DF\S__=OFM*F94ANHW0.\BM:%A5<(-P M%):?_?K,P6PALYA+WC20F4>TP*TGVSG@-N/8 :?%W0?VXA#<^5J&G!$'7X_2 M#>%K38Z$SOW9=-(V%"HY"6&MT%VHX5R8=P;CV6R0)A]@FHX'X\GD;S<@/BFK M"FT1FH?C$&M-;87UJWU_NFK+\MF\;6XWPA:BV)P( M ,P$ 9 >&PO=V]R:W-H965T, MC#)D%CKC]2>%/;?=^Q EDJ%0WM(XO',>_/& MF7%^L.[)UX@$1ZV,GR_;6:4%LNBKUC4-11I!6:38< MODFUD"99Y'%OZQ:Y;4E)@UL'OM5:N.<5*GN8)Z/DO/$@JYK"1KK(&U'A(]*7 M9NO82GN64FHT7EH##O?S9#F:K28A/@9\E7CP%VL(E>RL?0K&QW*>#(,@5%A0 M8!#\^85K5"H0L8R?)\ZD3QF E^LS^_M8.]>R$Q[75GV3)=7SY"Z!$O>B5?1@ M#Q_P5,\T\!56^?B&0Q<[S1(H6D]6G\"L0$O3?<7Q= X7@+OA%4!V F11=Y6G86MLIN,&_$,X]%KR(;9 MZ ;=N*]S'.G&5^C65FM)W$WD09@2UJR6:T532/1P+WVAK&\=PO?ESI/C9OEQ M(^NDSSJ)62?_>[K_0 .?:V2]@A]C045_\^('/!;8$/#<@N-I9,I72I*L1)P& MR867?!H,(@M4(^Q:SS'>#_Y6=WK181I=%>?(0V%;0UVS];O]J"Z[#GT)[^9\ M(UPEC6?%>X8.!V^G";AN=CJ#;!/[=6>)NS\N:[YNT(4 ]N^MI;,1$O07V.(W M4$L#!!0 ( 6#&U-B5^Z$" 8 'T. 9 >&PO=V]R:W-H965TSNV[BL4WJRT*;G#HUD/[=8(GGNCLA@FH]%T6'*I>N>G?N[:G)_J MRA52B6O#;%66W#Q>BD+OSGIQKYFXD>N-HXGA^>F6K\6M<+]NKPV>AJV77)9" M6:D5,V)UUKN(3R['M-XO^$V*G>V,&66RU/J.'C[D9[T1 1*%R!QYX/B[%U>B M*,@18/Q5^^RU(Y(YWB,KA(7G*1L(]:N8UE[U0N\GT'0^!I024-J,ODJQX_\D>6Q@.6C)+X*^[2 M-L?4NTM?4'WLK;59H6QG!?K]86F>@BC^^$F+Y$+PPMVQ/KI-!Z,1B/V&@_I;$+C MZ-9Q)]CWW\V3./FQ^8\^:0>3[+#O)S>-D[=B); T_S:*?C*J;>/XF_'S%]Q^ MZ2.LWE]$Z)UO[$ MPQ9>\/8+&$UT3WDUD2AA$Z(_J>>H.H(" ' M)L?56BZ+%AXZ0A4:<(.COU@,9ND"UM?7UZS0W)=D#7LE+ *EH^E@X0,U0OD% M!)G#:-DX'B Q-AX11_7*/I[F 2IDC$#_7CO1N[::'7Y])?J3R?&"O2)!'J?L M%;M%XG(E,PY$6+G5A,T2K_OZZ H\XM8*+.(J9Q#G$@IU$EE K59:UQ@']4BU M[NIG;_\%/R?1!2WD8,++.M?5TJVJ@O0OY#U''2PIB%2#__'8RX=$(!7H]BKC M^9\X9DKB-4D\\8NQ9V+?M5Y:70@ON\9R7-.<3F:#F RRS%3 =\^SL.WF(?!T M1"5J7X.K4EJJ@643'S"EW^@S-P9<0O?0GT$!DC2\7=2BU]D=TUOG#>& ?!$R M6BQ)"DDZ]UI(TB"& _VEIG\>CSWR>;+PT/:H[=3E)'KWD)$H:3X7^.S)ZH[2 MGR;CP70^(8U-)XM!2L/H9^S"0_%0@L5H$,<3&LW"Z$;P0O[=]BMEF*[NZ$Z3'[ M]*3:L$URZHVH9E$%E+P11(3>&'J6\\$W_'#:)&0; M],RP5"C?O0V@,;[&9Z5U+Y$364FVZ KX?O0*7HI"BGO@1M\#JN)$]FTFX(KY6OE MJ(>L::]+Y8-A!V"><"A1*YEWK ^0%,#P4E?*'9),TUP:F)@-M'MI;/0.S)@! M7E=%'FJ"XONF766$@9$H!]WYBI@SX"E>>,%&'(8RVE%TO8J =T$/CNQR0] M'[6[OUM:*AT=<[9:@CM)VV4E@8>XU(7,.1W-]>D:T>)G9[ 1P*LL!/XL[*![ M(D#J3]:0:FB]3TY=_4%&PO=V]R:W-H965T<\YU M?(_'>Z6?3(EHX;D2TDR"TMIZ%$4F+[%BIJMJE/1EK73%+$WU)C*U1E;XI$I$ M:1SWHXIQ&4S'?FVIIV.UM8)+7&HPVZIB^F6.0NTG01(<%^[YIK1N(9J.:[;! M![2/]5+3+&I1"EZA-%Q)T+B>!+-D-.^Y>!_PC>/>G(S!5;)2ZLE-OA:3(':" M4&!N'0*CUPX7*(0#(AF_#IA!2^D23\='],^^=JIEQ0PNE/C."UM.@F$ !:[9 M5MA[M?^"AWJN'%ZNA/%/V#>Q&3'F6V-5=4BF><5E\V;/AWTX21C&;R2DAX34 MZVZ(O,H;9METK-4>M(LF-#?PI?IL$L>E^RD/5M-73GEVFB1=N&5:6.%QDE!_PY@U>^A9>"G=*VM+ K2RP. >(2%RK,#TJG*<7 M$>_8"V1)"&F<)A?@LK;@S,-E;\"=%>NKA!^SE;&:SL?/"_B]%K_G\7O_;4,O MXKFF')F:Y3@)J.L,ZAT&[Y# G!F> QX#:@K(FP#C"^;&S>NMQ0)6+U#P'2\H MLL,E+2.P'>."K02"56VB5?E3J42!VK@<6R+L_9''XA/;H:8./B,Q0!9@+),. M&<@]? I)X:KHP@T7GOT5C9U&(S6GZUSS429Z44&$3LT.M;(H+6?B/"$D#\I+ M8*8I"U3M',)T84:TN9(Y%YQYTU#K=[@[I]RT71]1:L@)W:"12T'T7TC36@FR M2C/JN!/OCGW)F8E7MS6^E+%FI'Y9T=Z%V ?1] MK>B('":.H+T-I[\!4$L#!!0 ( 6#&U,P4Q(."P( -P$ 9 >&PO M=V]R:W-H965TESL[.JUMU;O/3G,"+<)U<(:4](@^^N4'#Y3I#(,VM:L![-:CX( MK08VFZNU_RB/9'FW9A[ETW0"#R@%80D[8>D,3U9H)\*9N446$Q?QT+CH!=>= M8'I5$+9&4^7@O2ZQ_%,@9G>#Q?1B<9W>5-R*,\RFKR%-TND-N=G0\2S(S:[( M7>\6OJWVCBQGWV_4F0]UYJ'._/^=[#\)PE.%L#&J$?H,E2A!&YZ:#MX$.(U[ MY7E^1/QA#E\07 M&'YH^2]02P,$% @ !8,;4R)PS'% P 90< !D !X;"]W;W)K&ULK55-;]LX$+W[5PQT=BU9=C9M8!MPTA;;0P"CV6T/ MBQY&TE@BP@^5I*+ZWW=(V;(#--E#>Y%(:N;->X_D:-4;^^@:(@\_E-1NG33> MMS=IZLJ&%+J9:4GSE[VQ"CU/;9VZUA)6,4G)-,^ROU*%0B>;55S;V&6I.G7R3PY+7P6=>/#0KI9M5C3 _E_VYWE63JB5$*1=L)HL+1? M)]OYS>TRQ,> +X)Z=S&&H*0PYC%,/E7K) N$2%+I P+RZXGN2,H Q#2^'S&3 ML61(O!R?T#]&[:RE0$=W1GX5E6_6R=L$*MIC)_UGT_]-1SU7 :\TTL4G]$/L MR$A/R;DD?=0*+)\CQXW*VMZL"&:T<(@ M2HW93$[HL"D/WO)7P7E^,U_,X(-JI3D0P8,WY2/L.ELV+!1V$O7-*O5<)@2G MY1'R=H#,7X+,X=YHWSCXH"NJG@.DS&\DF9](WN:O(M[C 1;S*>19/G\%;C%J M7D2XQ0MP#PU:>A/VLH(='OB(>=A:B[JF./YO6SAO^;Q\>Z78C.RTYQX16:"40%+4HI#G5 =,^$+7[&S!A9(H#4K44!#?FHJ@ M.)RKEWQ*K2BZ0,TQF#5=W4"+!VNDG/#1[6+G<#/8^H&WK@(Z(3M;HN0I6F G MK"<[?:[L.78O6 -3P+:5P3.V,42W+U+NG- U6QVGDR>4'6,'ST^IBJ(HWQ,- MGI;2Q)Q"5(#,$QT;:T5Y=FHPVX1P]%"AIQG\T_!Q.!7E!U3"#;S/+$?+)_C_ M-@!O6-=RD5[XIK+8,^6]-6K0&X_$^\X&HF'A0&A=P.-JEY<\*N!!-H7Y='F= M\7-QO?S5;4PO6I\B6\<&SUMN^ -77!<'?\AVZ%UGL.''Q#?F%KP9DG:CVMK5Z61BREJT MW(1J)3J4+)1NN<57O9R8E1:\)\ M=!F?7J6D[Q0^2K$Q>\] E7-]7Y***$1"-*2QXX_CR(:]$TY C3^-S[ M'.U"DN'^\^#]1U<[UC+G1ERKYI.L;'T^*D90B05?-_96;7X2?3T9^2M58]Q_ MV'C=-!E!N396M;TQ9M#*SO_RQ[X/>P9%=,2 ]0;,Y>T#N2Q_X)9?G&FU 4W: MZ(T>7*G.&I.3'6W*G=4HE6AG+^(TA#NKRGMXOW)MNFEX9T[/)A:=D\JD[!U= M>4?LF",&[U1G:P.ONTI4APXFF-4N-3:D=L6^ZO$=WT(2CX%%+/Z*NV17:>+< M)4?%2:]XMA7O^[7)NK$:4_/Z58.DN6.J"I?^^K?_( M$;SIL"]Q,09;"[A6[8IW6^"56EDLCX-Q)LJ;K- $-K4LZV E="NM.;"R"I;8 M!@MS96N078G=P$DY\&& =Q5TJCOYO.:-7$B,R)(46O32N7\'&S2HUZD%HI!X0QDJ<<%Q9<*GA M@3<85BU \+(>_+@>H<93HKZOW, K2$*6 PN++""T$F2CX%::^Y.%%M06K AC M@,88J);$\ W$X:R ;X+7CRLD*/2+#2)-V JN#:1AA$YG3^('U7 K&VEQ*!(T M3]B^<24?9"5PB[92-!5$J$!_M"<+U2#S4@>P &Q<"G MH4F7?9->/PI=2B/@!COJMDE+).<2/E*[@O=K:RRBA"*=P-/PQC-@+'4[]0KB M.,QC_&6L&,<)"][W !F:FT5CECG%*$RBX*TPB/4!1:)/H$)I[V\:)MD76BNI M28<-,=,P28^FQR)@&1NBQF'&*+UH-B[0\_/TTOQ)D4V/IY<\I9<>2Z\8Y]Y5 M@G@XGAZ":9H/JG$XI5^6Q^.437&+H.1-N6X<=.5N0SQ^:=ALK7##AMBVYC:H M.>*^VV7KYD, 0L2A&B4$;83(/7X1>!E"1:TUE*IM$2C&PP-AC^ND.^MEU O MX+LX\?N'"P?[2F%GA4.*%P4#(L/O7?]Z@OX6:VZ4(SD_L3Y!3SP(B2*C:9G- MH/!3AJ.5LHSB4-1#"K!\WHB> ^0?6)'L_(>=HX Y;HJ/$0P5[F_3LP).#T!+ MU?0,03&"6SI8J8N'M&'@YW4[1ZBA9)BN+YCF5M#G)'G]U9$AZE[CMP4=SGB0 MP%MBRK^@I^ 5Y&$40Q%B1^+,-0:G!V@Y3U%:D'1&4B0G&FH6$C$5R$\HG9$4 MNXKBQ'--[HQG1/&.G4@>.[DGCSQDGK;B/'#;0@J,%&9QKY .!$@*S"DDSD/B M=@II"IP@F0:.%D@AWH4\CV%Q.6(@M0IN"*8*R+V.63>PXS( MJV^0EP\>>[D_C@\Q-74GR!Y6/0G5_X,5VDTSB+:TZ+'5?$RKJ8^ MQ'%<95[A)5P-'O9QE>WAJC]:IV$V'*\O?5U/]BXPK=!+=TU#VE/KSOJ[S&YU M=Q.\]!>@)W5_C7S']1*/&FC$ DVC,,]&H/W5S+]8M7+7(?S:QZSQ-BLT M*:!\H90=7BC [GY\\2=02P,$% @ !8,;4V0V'!;O 0 : 0 !D !X M;"]W;W)K&ULI91-C]HP$(;_BI7S"@<#W0J%2$"W M:@](:.FVAZH'DPS$PA]9>](L_[ZV$U(J%:2JAR0>>]['[SB39*VQ)UUY!=*TBV2<7":>Q;'",$'SK.9'V &^U%OK(SI02J% .V$T ML7!8),OQ?#4-^3'AJX#678U)J&1OS"D$G\M%D@9#(*' 0.#^\1/6(&4 >1NO M/3,9M@S"Z_&%_C'6[FO9(61+MY) MV^4ROV/1.#2J%_M8"=T]^5M_#E>"Z>,- >L%+/KN-HHN/W#D>69-2VS(]K0P MB*5&M3XX6RE MO4'?F7%8^5\!V)#@UP_&X"4(&PP_E_P74$L#!!0 ( 6#&U,\5Y0#\P$ M &\$ 9 >&PO=V]R:W-H965T1"7-DI:(]2((3%Z"8&:L:I!VYZ"T8&A#?0Q,K8$57B2J( K# M62 8ES1+_=I69ZEJL.(2MIJ81@BFSVNH5+ND$WI9>.+'$MU"D*4U.\(.\'N] MU38*!DK!!4C#E20:#DNZFBS6BZ5.+OA:+&GH#$$%.3H" ML\,?>("J7^B??>VVECTS\*"JG[S C%UH'@LAO92_\>K@33V0U!U LB[[L[R+O\ MQ)!EJ58MT2[;TMS$E^K5UAR7[J/L4-M=;G68369C\LU^3=/H,]FARD^+-$ + M=MM!WD/6'22Z!8G(1DDL#7F4!11O 8%U--B*+K;6T5WBAIU)/!F1*(PF=W#Q M4&7LH6U0/RWM'P&T2[#[!Z7P$K@#AG],]A=02P,$% M @ !8,;4YW:0RR\ @ Y04 !D !X;"]W;W)K&ULI51-;]LP#+WW5Q#&@&U $7\D7;,B"=!T&]9#@:#=QV'80;&96(LL>1+= MU/]^E.QX6;$6&':P)$KD>X^RR-G>V)TK$0D>*J7=/"J)ZHLX=GF)E7 C4Z/F MDXVQE2 V[39VM451A*!*Q5F2O(DK(76TF(6]E5W,3$-*:EQ9<$U5"=LN49G] M/$JCP\:MW);D-^+%K!9;O$/Z7*\L6_& 4L@*M9-&@\7-/+I,+Y83[Q\03!TSU>H5(>B&7\[#&C@=(''J\/Z!]"[IS+ M6CB\,NJK+*B<1],("MR(1M&MV7_$/I\SCY<;Y<((^\YWS(QYX\A4?3#;E=3= M+![Z>S@*F"9/!&1]0!9T=T1!Y3M!8C&S9@_6>S.:7X140S2+D]K_E#NR?"HY MCA;I^0AND:1%OFF"E1+Z8A83(_OS..]1EAU*]A1*!C=&4^G@O2ZP^!,@9DF# MKNR@:YD]BW@C6ABGIY E6?H,W'A(]2-)RUP](B>N"MX M\AIMSDQ>452&A0(^<'=SC-#PN[4A-MSEGO%?0#:=GD[.$TC/IJ?IV[^^ MP_BH]"JTV]!@'(ME]*X*A]VAAUUVI?O;O6N -\)N_9]5N.'09'1^%H'MFDIG MD*E#(:\-<5L(RY+[,%KOP.<;8^A@>(*ALR]^ 5!+ P04 " %@QM3E6NE M6G\" "F!0 &0 'AL+W=O>,QE2!N#Q_H7]*M;.M>3HZ-*HG[+PU2(Y3Z"@ M$EOE;\W^*_7UG 4^892+7]AWL3/.*%KG3=V#V:ZE[E9\ZN_A"' ^?@.0]8 L MZNX2196?T>-R;LT>;(AFMK")I48TBY,Z/,J=MWPJ&>>7D_,17*&T<(^J)3 E M7$F-6DA4<*V=MRV_@'<7\]1SMH!)1<^\[IBSMY@SN#':5PZ^Z(**/PE2ECEH MS5ZTKK-W&6_P -/)*63C;/(.W70H?1KIIF_0K80PK?92;V%CE!22'/Q:Y5PS M_RJ_WTDP&Q+,8H+9?[C;?\,,WRL"@=8>0I58AWI="!?H*D!==!MZ;.4.58"< MGF!W+8Y;3A"[!K/7ME2 DIA+)7VX06P::YXD]PM!&23NHL2< M!+8N2O6LR57&>OZ/?6NE/_1>/I:OXD=1_"M%U!UQ'SS9FD-WY'P,A3U9XEX, M?KZIX@0=6TY8F;,ZJ>&;8363T=_>-#WJG9KL-DX(!['C3V<)V&XJ=(8W3>S$W'CNZ[BM>)"2#0%\7AK6V1LAP3": ME\]02P,$% @ !8,;4[4MS:8I @ V00 !D !X;"]W;W)K&ULK51+;]LP#+[W5Q#"CD'];)<%28"D:[$> @0MNAV&'12; MB8W*DBF11:B[(,H$9%:1Q?1XVLM9A/@VUMYU.S)U5K7%MP^Z:1 M]FV)RG0SD8BCX:'>5>0-T7S:RAT^(CVU:\M:-+"4=8/:U4:#Q>U,+)+),O?^ MP>%[C9T[D<%7LC'FV2OWY4S$/B%46)!GD/Q[P1M4RA-Q&K\/G&((Z8&G\I'] M+M3.M6RDPQNC?M0E53,Q%E#B5NX5/9CN&Q[JN?)\A5$N?*'K??-,0+%W9)H# MF#-H:MW_Y>NA#R> 23+IS7C:)Y\N80;Z2JXX^MQ<*_[>^:&3:81<0#O%A4'LF5/EGY$EL+*:*H< MW.H2R[\)(LYL2"\]IK=,SS*NY!MDR0C2.$W.T&5#M5F@RSZ@>]RWK4*>*9+J MO6RX[6T.?BXVCBQ/RJ\SP?(A6!Z"Y?^GM6?)_&Y.7"L+G E>/H?V!<6Y"!>^ M8[YM\<6])F0(02OK$K31&#YL+TR#0/(577_V"?)L=)W%+"3C>)1D"?RK#]') MN#5H=V&I'!1FKZF?O,$Z[.VB']=W]W[I5]+N:NU X9:A\>7G*P&V7Z1>(=.& MX=T8XE4(8L5O#UKOP.=;8^BH^ ##:S;_ U!+ P04 " %@QM373KLG;L$ M C"@ &0 'AL+W=OO MN/"&H0%;&U[M&7S(&^5=KXRV$90GT^F7A9> M^-JQR-.B2D_FT^F;2264&5Y=I&_W[NK"-D$KP_>.?%-5PNVN6=OMY7 VW']X M4.LRQ ^3JXM:K'G%X5-][_ VZ5%R5;'QRAIR7%P.%[/SZY,X/TWXK'CK#YXI M9I)9^QA?/N27PVDDQ)IEB @"?QM>LM81"#2^=IC#/F1<>/B\1W^?CP8+>WW.5S&O&DU3[]TK:=>WPZ)-GX8*MN,1A4RK3_ MXENGP\&"M]-G%LR[!?/$NPV46+X305Q=.+LE%V<#+3ZD5--JD%,F;LHJ.(PJ MK M7\^F8'I1_]"1,3I^,9!>PE4&Q/[^8!$2(\R:R0[MNT>;/H,WF]-&:4'JZ M,3GG_P28@%K/;[[G=SU_$?&CV-'Q;$3SZ7SV MQQG^YQ@CM^!NZ95.F/1>:# M@T7^?"'(21_D) 4Y^9\T_7XTNC/TJS -RFFOTG1$H63,4X%S6@41D-Z*I>,0 M9]EB<,M"AS*AW3:5,!AU&R4Q[=7M[>H(GI9:."P65#>95I+*=@57[-9LY [5 MJ$6$#S8%6VN;"4UM6T (DM99(S;*-9Z6=Y\_O'L]^WF4(@(3?UPI.=@*_Q0K MVR6D+]9IT&KCW;FU,.HODVXU=NQ1TUB F((\;]AQ1'-- MG:@@031%EWAY HF$ M0GNGY,[Y411BKH@F[WR" JM =5WQCAKTC(D:W(:U!_V-B@^]+K$\D>F4.5V@- MK^$DRR-NT3A .WS9X%2J<<8$/^I\$DV1R#9MF!2DS6/0D<79EN']<=33-EVK M9@<*]\2/(4SE9MFQBOQE1P M#DTUK8'K3%0#;%2V0:@1O(QMOMK5<+(Z>I#TG,3ZB'V>CDS>ST>ET&N=A$,I!<-[W$Z2Q!OM8DGL&]_?WI"V: M5=@5#07SJ:CV?$LXMUT&T0/ M'#T8-WD9-R%T5%+EP>^BLHV)=>L.F@C@[Y)Y.MI]_1WHD;IN>+1/Q&W/\/YK?P-:M ?_T_3V^O110#,4I>8"2Z?C,UPX7'LE M:5^"K=,U(+,!3DV/Z.O8^3@!XX6%:MU+#-#?"Z_^!E!+ P04 " %@QM3 MEGB,%"H1 "[,@ &0 'AL+W=O[>R\SS.SJS=;Y^_"VIA&/51E'=X^6S?-YOOCXY"O3:7# MD=N8&D^6SE>ZP5>_.@X;;W3!BZKR^/3DY-5QI6W][-T;_NV3?_?&M4UI:_/) MJ]!6E?:[]Z9TV[?/YL_2#Y_M:MW0#\?OWFSTRMR:YI?-)X]OQQV5PE:F#M;5 MRIOEVV?7\^_?GY[0 G[C5VNV8?!9D2@+Y^[HRX_%VVA@;ESY+ULTZ[?/KIZIPBQU6S:?W?9O M)@IT0?1R5P;^O]K*NQ=X.6]#XZJX&!Q4MI9_]4-4Q&#!U7H;U.@#B\JKP9RMR2JWC<=3BW7-N_F1NA6#*+=4MW95VZ7- M==VHZSQW;=W8>J4^N=+FUH3OU?/T\<6;XP;;$Y'C/&[U7K8Z?6JK4_63JYMU M4!_KPA1C L?@NV/^-#'__G22XD]ZI\[F,W5Z*,R9T]0>Z Q.K? MUXO0>/C.?R8V..\V..<-SI_8X!^Z:;TA1?]S8[PFMPS?'U+D-Y!1/^M=Z;SZ M8.YM;L),_5CG1^IYLS;JQE4;7>]>P&_J=@E9L#HH71<9HJ/$)Q4@J9NO 8=2 ;I"_#@K2[5^Y;X#$2B7+Z\ M+G[# [+Q[=KE=PKV=7Y!S[._V_^"I/I@C;K=>+R"-;_:A6BXW_@GG:]AD2*] MQ/O=L,0(FJ;5C?.BAC:0D.I>>^M:Z&^W@=XA9244/,0RV')3L1)!!1RW8IY9 M!N((2UON5.-ZA:KMVN9K5E_I2$\%S *SK=9(N8JL_4MMZ=?;!@^%MV!@3R@" M+$&_M6(O)^VR=<8V&;A(H723#?SGKT$%!R]QXG30(%ZTI6UV).3CK;=K>(?2 M94DBC^F4KEZ]+)&.L4<(!GM#9%N8(RBW1C%@A10.1&H'J1!_=QGTZ4#%;RVT MJB5463,?@) MIL_MIA2#WL#QD3$*]I2#$?WMU-A&)"\K#VK/\NXY]+>TM<9:F#>0VDES(446 M:SVJ*NQ9@3W#-F0F5\+)H#=0"^T"=K":7!,))7?JL]$E+'SC_,;%2'@NO[TX MRJYA7%LWQK^,[)&MZJ!S206TQ4*7X ^"<>)8&-C(E,@&-7-OR1L'TAY-F.95 M9YI7D\J\A0P(*W*AC_>DCH,&^5H:;(:DN[4.RMSKLF4A#+_!T@[%S\@Y-Z[! M0S*/-[E#=64-XD%A0UZZT'(>9,,6RB&55+3W* M2;-V8<#5E%VO.KM>31KE1H>U5"SZ\!&Z@!\_&27?2FL4+3$;!:X%:U1XF*N4 M6FOK>TC'6B(44 $&[& *?X=^9-G6A;A"VH8_F'X;H(8NQ76ZC0E',2:&DF^> M7 W2O;EL#2TWK41N!6!I'G+#=@U<"REGD2F;OIRC.PFJ: D$,!L[ X3#!;== M_)8<)2F!BK@#7ZB\$2C!)W-0MHWR-MQ-V?:[SK;?36>M-7SQ)=)Q!?S3*?:@ M8;^)D+IN1.K92#0Q8F"-A=#;36R<<8' "PKJJ4E7I&K?,LDC-=AJX RDYR&Z M9[4.?CCI2MQ?_G1U>GKR6M]K ,P%X$F"!/Q@_AI:E\IELH4CQC@N"=L OEBO M*(N;68)5&X"AAY@"4G2H S0R_7!PA/Z&)+NW_P H*<$&+5VBB)5F@, 1"4)P0%IPS ]3"<(G@ MNF10X!M8 "&## 9G0A2T55NR=(R4^+$W:^JA[QEN T+.5&WH]0RMJ_&>/9Q^ M5XU^H)ST.7'UB)L8;*1;VFYD+:BD,&1$!L9M2+H(&Y-30ZD [I"\E[%+4)5! M:BN&VB42;(NT'%D^IW\K5YB2LC7L8O]'^(<(MU);',JTOV>[VWK3-H*[4[<1 M3 ZS-!'IVM!G(C3R1)LW),%VUI1@ J]30T/EI/,G5[,>H7#ZUI/,2 =4;@F4 M4X5*NZ:@9HP\F;/G)WV7?C(9D-<)Q)$]_LG&_6QR8UGTPQ'^QRBJT7-Q)]\_ M9W/UD:3K6!"S05$U#S ^01C*?"6-8:2HH5'!RKH8).LP OZ(P7M+5F( Y=V" M-=_6D8JE;QVJ30!)JWRM_DM.NN=@B#2? M="8J$C7:WMUA3_R]BU7W$9$U<"\2#>) =93FJ)E=&4[/ -(9I3-)I:P]#FE MJ^%;H[2^M#XT+VT]BY^H;^94/Z6)TUX3IU_HY*@];J2]^IB:^\-J^29*:O1[ M/SX8*8REECP_+ O(^:@'@#O<:JD/@V^T/L9=H?K1PR"3 [?0<.8E\1GS-P=H M#Z$$"W/N;E%S@^F0KREI9 #*LDY:H[[N'%A)"8& 0]WY,+4-,!C'@GA]0>[L MNA$8U4;0I&@M7B,;]Z-,6Y%HIJ]5N=[81NK'\[,M(^%>I)DOU=[LT M\&4 1^+^L/'_ #V!M/?I:4E/;7KZ.'("YZ\"R*-;PFG-U3S8G*Y0_6AS/CV4 M_$Q=,*A_[MOUB5 M&W0:!XK\CH=3\([*!EX>1V$$(@ L+.=SJAMI $>XMJMVDNJ]6992Z$2K-,@2 ME\RP5(#ED(5!702T(UC4E-) D"O=;T2#)LXC;B2&L%#["'5$>+D\QDROUN4 M=M6%M$ZR,=]9LCG7@4@?[Q26)J+X>>40U#WQ5%:2\#,9&HFD+:P3\POI@OA( MY EZSR]?A^$X1$S#/)5QR&P.SV'!!1Q^);%+F$54*<>O'+'08Q594%;UTP-T> MYJ')]M($O[W'MF EL28Q 9#D\ MH>'#BUDLV%3_^V+8\>A-*0HA93@4P&ZT5,0EC!U8-.*&QF+ I=3P)LFAD:WV M192&!RX4/4]:_\?$ T,2;V(G&_BP-BTS16K T:SCA0UWA.0JLV0H;Q8[I$O0 M (:Q\*09MX%=T-$P)2;T/5FMP6WDRD:;-V[U-.X)@9FG"N$ M%GJ*FXS[[B/IXS(Y$!F=&M&+@PS:0L,JK"-TW(^MKA_J8E_*JM@"F[%=^Y$7 M@8O1= ;_/S]3%Y?T'SY\2B+&4!)VFMU&U :@NG*-Y8I 04:'0^3N-!*"=FB2 MA@T_#=?V!T$%]^_Y4P$5U1JC=0\R= KH)O?B21E7Y!>2N@X,=-,X1D(V(=9Q MM-=TJ-79=H%&4(X*>:HBN$PB<"]409 :W9A=LAZDR3$0'9;-TLPKABRU 5T8 MI]8WP@G:'*&1]I^EH=@@$&..&4&KT>(XZLZ(2*J>)4H5'_UUS'0BCM9.L7B( MF<-4#K (#URFQ+WSR0*F!A2BMZ=[] MY0!B@ &7AP$=#;/@8$L;9P>$V82R) 'Q[&R4L[M*%%4%=]U+'20-TA+)?,T\ M/AJ,TD!TK('N[#0>UWP7\0*0$&*R M[(N>&'/"DI.M3W\4/)\^O;U%'MFPRT#RO^%_Y,(P17AB]OX'R*G1PW5ZV-F2 M>VJ9L<=)2@9=53$-E@@%2Q!8QLBCZ;&,4Y81*P972DVFD>?TEJYM5HY^2>GT M0.GI=\X>[TR74+!^E@[S9&A00 P;^+#DOG.;E :KX8EV%V23\NWODDWL(F>I M?U;S\U>SJ\LK=8[PNKQZ->4L_>'T?/ID^3/XU3Z7(ZD/2&REDR(TX2]_B*(: M/2\&S_NHW--<=M S.-8F#1#5]MWI^>SDY$1=7%W0OU-JZT^CY]-GR3_*L.AG M.J0XK*2O6)^NO=Q;OEPX'D:9,!Y 7C)X7>= 'NS FHN8SVC MKE42H^Q')@ VXGDL+!C/96@P%F_',*Z,)9>.'O;@7&*SR]++ED^IB (-)/@F M0R['X."(CL-\?W^+'BQ,LZ6K&5%8WO 0\J%S$P$%S%BVQ]B8^RA9!R>)<*FW MPV,64VMFF/,R3P(97C\"STJT+YJ+3$;RF@_1RUVVT9:'%X-Z.3B%_FO(-E0" MXA "A#L%JNZ$DALDV78PG43Y;&*SVKT9'Q^GG"%5;T@4/Z,'M=*\?TWV&;$- M*Q5](>?.-<]]R^X66:&^=+"7W*EC9OE.P>"NT/AHG*YWC: $"!&2&.]/ GDB M6+M^RR3TWM:/=QR$ )^;L-+VCLQ#]KB!Z&#-B)EL84J+!(:]&IFBI&:A.W%W MX$WS[2**;/2,2U-T186Y(9-R-6L!T.0HCP.(6:%.Q_%TH>=F?C4)$_J+%_/I MVQ*WC%4F,MCO7ZYNC&=H\QM4&=!^QD:QHDZ$9E?2 <)WH81^K!+;PAJI_0%I MH-F[I]G9/)Y A9C<)=9X+#4HZSRIX#L1G'KJQOI4&&1"Q]=LBG@9;X#5,^2 M\7Y ^G(LRWMT:)_;AE224V:*O%&E2APT7YCB]]\Y7Q!MV M?OI&W^^GE8UHC22/XQ49**57XJ$5+,N7+*$3GG6LO(Y09HV\]U+2:M=2D^>C M:W0[8\+XYRZE)Y?]A^ M.GTT_@^S'=Y^OZ736TAP.&J_3"L[2$M=2W*5.BCW]@[N"E\INHL3V?/KVYL7 M:M4BOU(FY[&EY5DQ7ZVT-#BHY*H(3<73S'9P>A!X,G./!WQ,@V%?\5Q-! M[@W+GQ9TOW9_F7$M?X_0ORY_UO&3]BNZ1U*:)9:>'%VB]_'REQ+RI7$;_NN$ MA6N06?@C#>",IQ?P?.EFEJ:25!:NQZ%H:)\_<./RO8F@.;N$P62CVXQ>=B M$D1.$-206T<0^'J$:ZAK!T(9?W?,H#O2!1[:>_H'GSOFLA &KE7]JRIL.0G2 M@!2P%)O:WJGM)]CETW>\7-7&/\FV]4V2@.0;8U6S"T8%327;MWC:U>$@((U. M!/!= />ZVX.\RG?"BNE8JRW1SAMISO"I^F@45TGW4^ZMQJ\5QMDIOR2S/%<; M:0T1LB#?; F:W$$.U:-8U&!&Y,UW;[P=AQ8/=&%AOH//6S@_ 6> MRP**_P$A*NWD\KW<.3]+O!'/)&:4\(BS,[BXRS[VN/@$[B!/\GNV,%;C+?ES M!IQTX,2#DQ/@KJ:Z.X%8]SQ6Q+,HUY4CLQ8Y3 )L.P/Z$8*IR]\5(>I=^SL" MVI +$E.6)C0;1FCW:9QE-&/] X_7KU+.V!6*LB!]4V#OTJP_((,XHBF/>Q^U M,G@1CJB/:9SV:<;1ET;H/8S3WA= YUF-C2UD#@1'!"G49F&7F_J%,:##%+4R M1OE@V)L5^SNF#VH_3!A-6-8*Y%>]KSB-CHFX( EE/*+]0>)33%E&DR$CQ_Y8 M>- 4F/W*M[XA'MKV1[?;39=9VU0O[NUHNA%Z54E#:EAB:'0Y[ =$M^W>+JQ: M^Q9;*(NE]F:)$Q*T<\#O2Z7L?N$.Z&;N]!]02P,$% @ !8,;4^-V%EN2 M @ 104 !D !X;"]W;W)K&ULA91+;]LP#(#O M^16$T<,&N+7\R@M)@*9=MP+K4+3;>AAV4&PF$2I+GJ0T[;\?92=N!K39Q:(D M\B,IDYQLM7FT:T0'SY54=AJLG:O'462+-5;W0_ZEM#NZBCE*)"98568' Y#<[C\3SS^HW"3X%;>R"#SV2A]:/?7)?3 M@/F 4&+A/('3\H07**4'41A_=LR@<^D-#^4]_:K)G7)9<(L76CZ(TJVGP3" M$I=\(]V=WG[!73ZYYQ5:VN8+VU8W30(H-M;I:F=,$51"M2M_WKW#@<&0O6.0 M[ R2)N[641/E)7=\-C%Z"\9K$\T+3:J--04GE/\I]\[0K2 [-TO/X%H]H7+: MO(SAPW>^D&@_3B)';*\1%3O.O.4D[W#B!&ZT<@: M#]E_/3C_BF^]X5& [[^QK7F!TX :S*)YPF#FT_=OP'IW?$M_WJ$17%HX@9RE M89IE)/7S8-QHNKTB*/!SNH"<>&[=8>.L?1 >E7:%9-0UL MH= ;Y=HJ[TZ[&7'>ML:K>CM@;KA9"65!XI),V=D@#\"T3=MNG*Z;1EEH1VW7 MB&N:6RS*Y$J2<79?GV'E*UXT;71E[Q80W(N9\XQ M-9H>E/YL]H@67II:FEFPM[:]"T-3[;'AYE:U*.EDJW3#+2WU+C2M1K[Q04T= M)E%4A T7,IA/_=Y*SZ>JL[60N-)@NJ;A^LL2:W68!7%PVG@O=GOK-L+YM.4[ M_(#V4[O2M J'+!O1H#1"2="XG06+^&Y9.'_O\)O @SFSP76R5NJS6_RTF061 M X0U5M9EX/1XQGNL:Y>(8/Q]S!D,)5W@N7W*_H/OG7I93. !'W25:J:6MT^_=*6DU,FCOX[B-?UVB^GX:6<+AL876L MN>QK)A=JQ@D\49Z]@4>YPM\+R6OR#&P8KC2T79#C&?K5[U+ P!HG"!V&J6IE. M(_RQ6!M/U)]7X&0#G,S#R2[ >14(!X'P3*#N3*#J)!"X/251DFF=4M_2Z6I= M]SZX,RVOHGS&8.XH=S]&HAR5DU7FN+@)Y!RE+RX0E94%VP=))SO(\ M&CW^MYFR'+,HCBE@'!0:T7E1C&'"XDE&L$YM7,@ME?59:.\=Q&G)BGCB+,I3LC(JX8J\ M^2!O_@;R7M3T:K'_I^D%+$("OE2.6+5]Y=:QD4TFK(@R;Y=YQO(R'2U/#E^% M754R9FD1L\DXAS(MV+@HWDZ<8A"G> MQ#NJR0-<+OFKQ2]>LZ>5"I*VT^@LK M?]F@U6JG'9EQ!G$^6NQHM7/_[19U1;<=3G@@3> &QA'GHTGQ>4 2EGU3#[C#G%_UX>W7O/Q*>N-X)::#&+85&MR7] MVW4_>/N%5:T?=FME"9DW]_2M@MHYT/E6*7M:N +#U\_\7U!+ P04 " % M@QM3WUWA+(4" !D!0 &0 'AL+W=O]7$$8?-L"H+W%S0Q(@23>LP((%[2X/PQX4FXF%RI(G*4V[KQ\E M)VX*-.F+34D\AX>BR-%.Z0=3(EIXJH0TXZ"TMAY&D]U+2*6I:"5R@-5Q(TKL?!-!G.,N?O'7YRW)DC&UPF M*Z4>W.*V& >Q$X0"<^L8&/T><8Y"."*2\7?/&;0A'?#8/K!_]KE3+BMF<*[$ M+U[8WU LBWQJIJ#R8%%9?-GSWM M[^$(T(]/ -(](/6ZFT!>Y0VS;#+2:@?:>1.;,WRJ'DWBN'1%N;>:3CGA[.3Z M"A94.HN2R1R!R0*^V1(UW,I'E%;IYR%\^,Y6 LW'460IHL-%^9Y]UK"G)]B3 M%!9*VM+ )UE@\9H@(JFMWO2@=Y:>95RP9^@D(:1QFIRAZ[3I=SQ=YP3=#:Y1 M:RQ@KHPU(*L-96M?80U.S',WD82#P2!, MN@E9W3@.LZSW7JP0) VB2P>@@/W.@.P^A8NO8WCK?J.CEU^AWOC^-I"KK;1- M$[2[[0B9-IWSXM[,GP73&RX-"%P3-+[J70>@FYYN%E;5OH]6RE)7>K.D,8C: M.=#Y6BE[6+@ [6"=_ =02P,$% @ !8,;4T)*&ULA57);MLP$+W[*PBAAQ8@(I&B%@>V M@;@[T*!&TN50]$!+M$U$(E62BI._[Y"R%:=(THLY)&?>>S/4C&=[;6[L3@B' M[MI&V7FTC]/"+1\>!*;G?.'\2+6<>WXEJX[]W*P"X> M46K9"F6E5LB(S3RZ(.=+YOV#PP\I]O;$1CZ3M=8W?O.YGD>)%R0:43F/P&&Y M%6]%TW@@D/'G@!F-E#[PU#ZB?PBY0RYK;L5;W?R4M=O-HS)"M=CPOG%7>O]) M'/+)/%ZE&QM^T7[P95WASJ(JQJ]_]/+#HKN MSM'K;WS="/MF%CL@\NYQ=0!=#J#T&5!"T:56;F?1>U6+^C% # I'F?0H.?EVLK3/PO?Q^@8J-5"Q0 ML?]0!0XQ;4#9O.O:D)QFN($$P9Q7E>3+YN-K(2:-,;)5UOQ#]!%&=ICO.R!(LF4YR6='+1.SUH<::O M;BRB#)>D/"Q#'H]4LB+'C$X1RS*_3CX:;2WJGBXNS3 I4T""LJ0AO3P#4 $1 MO*KZMF^X$S4T+]2PDCR,!Y)!:@6FI$"$85) (?)R\O3K8:1@7+Z"@I4$JC%E MP69)@=DT04]]-/%)A[;";,,&PO=V]R:W-H965TM4E@"'O32WTRBN-:1>^K_,2&JYO90L"+3NI M&FY057M?MPIXX8*:VF=!,/,;7@DO6[JU)Y4M96?J2L"3(KIK&JZ.&ZCE8>6% MWFGAN=J7QB[XV;+E>W@!\Z-]4JCY(Z6H&A"ZDH(HV*V\=;C8Q-;?.?RLX*#/ M9&(KV4KY:I6'8N4%-B&H(3>6P/'W!G=0UQ:$:?P9F-ZXI0T\ET_TKZYVK&7+ M-=S)^E=5F'+E)1XI8,>[VCS+PS<8ZIE:7BYK[;[DT/NRU"-YIXULAF#,H*E$ M_^?O0Q_. I+@0@ ; IC+N]_(97G/#<^62AZ(LMY(LX(KU45CDM>> UZ03Y]YUL4/B]]@UQK]?.!L>D9[ (C9.11"E-J\D444/P/\#&A M,2MVRFK#KA(?^9%$(24L8.$57#06&3E<= 'G*KS"B4=.[#CQ-0[9'O$ ?DLU M' \H8HXM?-2VJS0[;@O=\AQ6'LZ3!O4&7F8KMF4'$W3M2L--MZ) M)3Y$H*P#VG=2FI-B-QB?MNPO4$L#!!0 ( 6#&U--3_;+< 0 +H* 9 M >&PO=V]R:W-H965T>>3P%! M 9DE!(ZO1_@,14% &,8_+:;7N23#P_$>_8O+'7-9<0.?5?%-Y'8[]\8>RV'- MZ\+>JMW/T.:3$%ZF"N.>;-?L34./9;6QJFR-,8)2R.;-G]HZ'!B,_3<,PM8@ M='$WCER45]SRQ4RK'=.T&]%HX%)UUABV2C\S37E9Q6"]!M=LW,HQ_D^[ M.Z!:E55M_U,.C@1M@<%3A7[PZW-H%(P&<5?T@[ _,8DM'U/9 M\T2++7L=.0F5&M>;C&AW!=@*)4DD%[B(8LFP:?1N4:9<9UN'DB&!PAID+1BW M=/3#4=@,>]A,L57*3^@52Y1C3);+C<"3L@\/>T?=].Q]'/W)9#"*)FB]7"Y9 MH;AD^#_:H+T$@XXB/QU,G*.]G'[# NGCT;(X&&!B+/:I1NW./L[&3:@H=G3T M_Q76N^[X/JBO8Z*?).<3]I%D>QZQCR>DF'923$]J@Q2A*"-#;'2GD$BZ, 9P MF-ZXUEQ;/4I,[ M"Z/FZZ0]2"I[8*JRSA !"(LBH\V"Y!5&8Z>O,&H$=J2S-67#P&(7^3B ME;9XX7#:NW[*2.BTG@.RDK6MJ)^&\2 =)Z3;-)D,(AKV?L63?;FU(SL:IRMY.5LGC7<<,M7BY!TP;\OE;*[B?DH+NN+OX%4$L#!!0 M ( 6#&U-(F;ZW9@( #T% 9 >&PO=V]R:W-H965TZ4?30-@R;/@TLR"QMIV$D6F:D!0-1)"B303GU>RM=3E5G.9.PTL1T0E#]L@"N]K,@ M"8X;#VS76+<1E=.6[F -]GN[TKB*!DK-!$C#E"0:MK-@GDP6N?/W#C\8[,V) M35PE&Z4>W>)K/0MB)P@X5-81*+Z>8 F<.Q#*^'-@!D-*%WAJ'^F??>U8RX8: M6"K^D]6VF05%0&K8TH[;![7_ H=Z;ARO4MSX)]GWOGD@A(O>X^D5?YB5I:3K7:$^V\D>8,7ZJ/1G%,NH^RMAI/&<;9 M,DFNR1W5DLF=(2O09*F$P&ZM&ZIA0CY\HQL.YN,TLIC,A435 ;SHP>E[X)3< M*VD;0^YD#?4Y($*5@]3T*'617B3>TQ>2)2%)XS2Y@,N&RC./R][!G57MRR6_ MYAMC-?XHOR_P\X&?>W[^+WZ+_*KOJO%IK.OI6QV]"'3C.3$MK6 6X/P9T$\0 ME*X9KB/QU?P)-([162I#< Z-I;)&)20+\]LX3)/,6442)FEQM3SS9L9T3ASI M\)OAZ%I5/1+5^OEI.96&).%HG),B'(VR_\A(D2><43/>>8K3D(1%,?8:;L/Q M;4+>:G9T\DL+T#L_N 93==+V?_>P.]P-\WXD_KKW%\L]U3N&TCEL,32^'M\$ M1/?#VB^L:OV ;)3% YUNE[''A$@PW9OD*4$L#!!0 ( 6# M&U/2N'D_@P0 'H, 9 >&PO=V]R:W-H965T]4H( \]UU>AQ?V7,^G(XU/.5J+GVY%HT M:%E(57.#CVHYU&LE>&&=ZFK(?#\9UKQL^I.1?3=5DY' MWG?L/]K:L989U^*3K+Z5A5F-^UD?"K'@F\K6 M+CQ!][#B2ES04A8PY2^H, -72O%F*>S][UH=:D(P[J8D1=&)]-C/K"8=5$#+V:4GI\/,F1^FUZ4[H$L M.9U>N$\O.I5>-D@=58CB.YT>*C=).VC@)71E:3"(6 )GQ)3LQ)3\VUUV :\5 M)@]2PTM7YZF]>#[>W1NRFSU9[YX&"Q\@]?P ,@_7+HCM$F+#@5ZG$5HSLN9D13V3 M#IA'6LY0TFC-R8JR17/HY)E:Y]S+XIX5--D#:W=Z2SWFE!ZD/;NX!& $R(,6 M$'5[A@#, D++$%I)H++!&L*D9Y5$@.@@_\B%"+W,)T!B >D!(+0YHB&R %L$ MLT4$+H?8,>2D][9!SM[),O;23IIG])CN])C^QWH\'^__K<>8VIW8U7"2\KT< MZ'62'U,KL];W:G53RRUUYGQ?JY76,;?.1]3:DJ?6[N;R:[4F;I2E7M:.T/2- M6B-_$/NDE*Q5:W9VI5\-<;AKCCH:[M[N#]94[3^[A[E1^R]42OX]0B06Z^EZ*GV+E3KKNP,P[*#83"Q4ECR):=I_7TI.W QH@UUL MDB*_CZ1(33;6/?@&D>"IU<9/14/4C9/$5PVVTA_;#@V?+*UK);'J5HGO',HZ M!K4ZR=/T-&FE,J*<1-NM*R=V35H9O'7@UVTKW?,,M=U,129VACNU:B@8DG+2 MR17>(_WH;AUKR8!2JQ:-5]: P^547&3CV2CX1X>?"C=^3X90R<+:AZ#8,6F7ZOWS:]F$OX"Q_)R#? M!N0Q[YXH9OE5DBPGSF[ !6]&"T(L-49S*XZC,OAS#I?0-7//U M>+@Q_3USP\;PZ;M<:/2?)PDQ4_!/JBWJK$?-WT/-86X--1ZN3(WUOP )ISCD MF>_RG.4'$>?R&8KL"/(TSP[ %4/9180KWH&[7W>=1AXNDOJU?KCJ;1Y^7RP\ M.1Z9/P?(1@/9*)*-_H>L"F3+0*9>>_U6AP]BAET=^TY6.!6\C![=(XHR-"=T M*/UP8PC93-!)58.Q!N.'[95M$4@^H>_//L*H.#HM4A:R\_0H*S)XJ^1D;\1: M=*NX2!XJNS;43]M@'7;UHA_15_=^T>?2K93QH'')H>GQV8D UR]/KY#MXL N M+/'X1['A]P9=<.#SI;6T4P+!\(*5+U!+ P04 " %@QM3ICA/XW # "? M"@ &0 'AL+W=O2G6O"P!#'DHN],0KC*DN?%]G!914G\D*!/Y92E52@T.U\G6E@.8.5'(_ M"H*A7U(FO.G8SKP"+K<3+_2>)N[8JC!VPI^.*[J" M.9COU4SAR&^MY*P$H9D41,%RXEV&%]=A8 %NQ0\&6[W3)U;*0LI[._B:3[S M,@(.F;$F*#8;N ;.K27D\:B2' M)5USW7Z 1-+#V,LFU^Y)MLS;P2+;61I8-&!F43-0M?6@"L0,(AT< 40.( M#@'Q$4#< &(GM&;F9-U00Z=C);=$V=5HS79<;!P:U3!AMW%N%/YEB#/3\(S, MZQTD7&->%1S/S(,7]0\;#4/7Z/9 M"E:P ;$&;#.)Q_4OY'AGF*()08;GR::7)GC'DVW!LJ)%,+T+DAM0Q."=W!62 M?C9)YV;6(>E'#D8OAF34AF3TUB&Q/7S:ZAS1V'"PJ>)>0Y%A.BTX6U'[OG3% MI)].M[(Z)OW([FCNQ21M8Y+VFIH7K*JMUS/>[G>@0:J,#TMUQQWD,NJM!MZE&YM M;[C#XSQ*\'0>T'V^;) .=I?MT0V#_T]E\$)PJ0)7-.3(L<1*2KM!==#6I--_4$L#!!0 ( 6#&U,N&0G,P@( ,D' 9 >&PO M=V]R:W-H965TU\]K8WNT$?)1+0 T>:IY MH\;.0NOEA>NJ8@$U4^=B"0U^F0M9,XU-^>"JI0166E'-7=_S8K=F5>/D(_ON M1N8CL=*\:N!&$K6J:R:?+X&+S=BASLN+V^IAHK%V$D=4L*IT/BD*L6JTPADIH%JS&0>B M[?7L"C2KN'I//I+[NRMR]O;]R-78I1&ZQ=;^LK7W#]A?LV<2T _$]WPZH)Z> MK/9>JUV,V67UNZR^M0L.V-UV$17Y,YDI+?$G^GO$..B, VL<'C">VGD"J88& MJ)5&5FK6U#H/:!IF"29:[PY%ORX*LBRC45?WBBWLV,+3V,B[-ZE/Z2><:0V- M64-#M*U9O$.!^T$6Q7NP_;(X\%(_&&:-.M;H*.L7*93"E=W[)8=(HQY"$*11 MYN^C]NMB+_"2(!UFC3O6^"CK=T#4"<==D#4%$-Q/22E6,SU?\2[!$';2NF7RH&D4XS%'IG2=H(=N#HVUHL;1[[TQH7(7V<8%G+4A3@-_G0NB7 MAMG.N],[_P]02P,$% @ !8,;4YDE54&H @ @P< !D !X;"]W;W)K M&ULC95M;]HP$,>_BA7M12NMS?,#%41J0=TJK5/5 MJNN+:2],.,"J$V>V(>VWWSF!#$B@Y06QG?O?_>YBGX>5D*]J":#)6\X+-;*6 M6I=7MJVR)>1478H2"GPS%S*G&J=R8:M2 IW5HIS;GN-$=DY98:7#>NU!ID.Q MTIP5\"")6N4YE>\WP$4ULEQKN_#(%DMM%NQT6-(%/(%^+A\DSNS6RXSE4"@F M"B)A/K*NW:MQ8NQK@U\,*K4S)B:3J1"O9G(W&UF. 0(.F38>*#[6, ;.C2/$ M^+OQ:;4AC7!WO/5^6^>.N4RI@K'@+VRFER,KL<@,YG3%]:.HOL,FG]#XRP17 M]3^I&EL_LDBV4EKD&S$2Y*QHGO1M4X<=@>L?$7@;@?=9@;\1^'6B#5F=UH1J MF@ZEJ(@TUNC-#.K:U&K,AA7F*SYIB6\9ZG1Z5ZRAT$*^$TVG',C9!#1E7)V3 M"_+\-"%G7\Z'ML9 QMS.-DYO&J?>$:?W])WX[E?B.9[;HQY_6NWLJVU,KLW0 M:S/T:G?^AQE.F,JX4"L)Y/?U5&F)>^C/B0A^&\&O(P1'(CS2"C^)!LDH5WW5 M:N1A+3?':IV&CN\'P=!>[Y:E:Q:%B>/]-]NC"UJZX"3="QZC"U9P'X9)'![P M=\X@WZ\J,6+3N)]DT(IPK;;J(\OZA9P@(2#Z "P:^?B)H\#/^Y'C%O$ M^"3B#_RPA')LR;3(@&!S)V*J! >5 2[T(<<]*.9W0/RAV1YOTO(F)WE_XO5T MLJ!)]\0D?07MVKF.VU=0>Z=%FNOIGLH%*Q3A,$>I&ULC971;ILP%(9?Q4*[ M:*6N8 @XJ9)(;;)IDU8M:M?M8MJ% R>)56,SVVG:/?ULAZ(T0-0;.#;G/WSG MMS'CG52/>@-@T'/)A9X$&V.JJS#4^09*JB]E!<(^64E54F.':AWJ2@$MO*CD M81Q%65A2)H+IV,\MU'0LMX8S 0N%]+8LJ7JY 2YWDP 'KQ-W;+TQ;B*8 :Z82'\6OUS[YWV\N2:IA)_HL59C,)A@$J M8$6WW-S)W1>H^TE=O5QR[:]H5^=& S+;;MAPJWBO5'V*;,Z,YU);32B MHD"@#;.V@(VH$DRL-;(V;T4NRXJ#F\^E,,KZKI&;DP*$#0U=4X L41S'N4,_>K8[>JD/K26-, MW!@3^W))3[DYK$ IV[5WZ +-:,4,Y>P?%!=HH:"BS ;.N.]F PI=:PW6CCG3 M.9=ZJP#]OEYJ[]>?$SA)@Y-XG,')=6(BWWJHOI7I,GU?./6%W4?]-$T2$L TBH?D"+J=A^T.CR/20YTUU-E)ZF^@ M-5HRSOW':B0J+'(7:-8&C7"<9<,CT';>"(\&">G9 :3A)._8NSUGC)#&]P!% M%SEI[4F!.XZ;O^_T/U!+ P04 " %@QM3?5^K\L&6JJ/90<"=VJI6FHP51M?=PIH MY4 M]Z,@2/V6,N$5N5M;J2*76\.9@)4B>MNV5#U< )>[N1=Z3PM7;-,8N^ 7 M>41["47+M?LAMJ X^46VUD.X"10BF%4>B[)H:N.9"#)1C*N#XD7\G-]9(< M?#G,?8.D;&N_' A<] 2B-PAP1JB.R4M!1AH%UZZ=I0)%SK0'M6#)=D^^3B-#P]25Z( M>%V7Q>E)FDYK2$8-R>$^4!6&6!=D+XO[>4[=C M]I*J#1.:<*@1&1QGV$+UHZM/C.SU"V /=K*&ULC57+;MLP$/P50FB!% @B6?(C"6P#CHVB/20U$J0]%#W0 M\EIF0W%5DK*2?GV7E"PXC6SD(O&Q.YP9K9;C"O63V0)8]IQ+92;!UMKB.@Q- MNH6!_P74!E#L;,*5DA/KG)U_4DB!PAD)!:A\#IM8,Y2.F B,:?!C-HCW2) MA^,]^F>OG;2LN($YRA]B;;>3X#)@:]CP4MI[K+Y HV?@\%*4QC]95<>.1@%+ M2V,Q;Y*)02Y4_>;/C0\'"7%T)"%N$N+W)B1-0N*%ULR\K 6W?#K66#'MH@G- M#;PW/IO4".6^XH/5M"LHST[G:*QA7*T9&"O(%J 1UTJHS#"RN50IYH4$MYZB MLII\-\Q6R"Q?26!G"[!<2/-I'%JBXT##M#GZICXZ/G+T+7]A2>^WQ8 ML+,/72#S=X-$G2 A&=*Z$K>NQ!XU.8*Z@ UH39*]/>=LS@MAN11_87W.EAH* M+FC@7/MFMZ#9S!@@6Q;"I!)-J8']G*V,-^O7"3I)2R?Q=/I'Z-R5^8I.P0V= MC;_!?0&A6*$QTV!,E_,UWM#CN1]Y-^WUQ^'NT->.D$$;\HIFOZ79/TESEA&? MC$J(%:!34);M:Z>+XFFL)+Z(HH]=]7 Z[S)ZF_=*S* 5,WBG&)YC25HTN*9( M_T67F!IK<&#F59(DHZCWG^EOX^(XZ5\-XV[GARW9X4FRR]IO:KNN2"Q2K;(= MER50G>Q0I%3)%IMV KI+P&G\I,/56M#IO%'_V-<(#UJ6NRYNNN,;;WX/0?4$L#!!0 ( M 6#&U-K_\:B&PO=V]R:W-H965TIV,>W") =BU;$S^P#M?OV. M'1K1%JIJNR'^.._KYYS@D]%6FWM; 2![J*6RXZ!";"["T!85U-R>Z084[2RU MJ3G2U*Q"VQC@I1?5,DRB:!#67*A@,O)K/5R#U=AS$ MP=/"C5A5Z!;"R:CA*[@%O&OFAF9AYU**&I056C$#RW%P&5],^R[>!WP7L+5[ M8^8R66A][R9?RG$0.2"04*!SX/38P!2D=$:$\7OG&71'.N'^^,G]D\^=VQNH.&"!JXBWWQ%+JT%M&PF;"&U71M@/R\7 M%@W]#7^]@9-V.*G'R?[M-1PJ=FO8]X;NKFXFZ2"FRTO5V>R7]75Y/X*UC+N*0NX*&IGS"]L%J"+8 6#A&WAH,]DCC/\W@0OR ^$#>( MHBP[0MSOB/O_4^,>4X"'L/NO"DC(R7F:O\!^'7<^S*-^]((ZW+NLKE%><[,2 MRC()2Q)&9T-R,&WS:2>H&W]_%QJI&_AA1?T:C N@_:76^#1Q+:'[ DS^ E!+ M P04 " %@QM3\*LYFZL" #,!0 &0 'AL+W=O- LA:8U7=!Q.# MFLONSQ[[.AP$C"9' N(^('X>D!P)2/J Q"?:,?-IK9AEZ52K'6CG36A.\+7Q MT90-E^X5[ZPF*Z&7@6N:8_PT04E9#:O$^M47\*N(->X)D= 9Q%(]>X+/\[^CH%3+)4.?$PR5' MX%98H-:^@E3M,UBRAELF^"_,SV"ML6&X[R-F ';_>OVR1)+J)D<.NJ$AX,1HVZ]/O"$--6VJZ1!NVP MDN9^$I_I%[2JNLWR!Z;;!0 &0 M 'AL+W=OB1-9CNEGTR% M2/!<"VE&0474W(:A*2JLF;E4#4I[LE*Z9F27>AV:1B,K/:@681)%5V'-N SR MS.\M=)ZI#0DN<:'!;.J:Z?T$A=J-@C@X;-SS=45N(\RSAJWQ >FQ66B["GN6 MDMG*+NW(41$X0"BS(,3#[V>(4 MA7!$5L;OCC/HKW3 8_O _MG';F-9,H-3)7[PDJI1V"FHNVR][[O)P!(BO3@"2#I"\!J0G &D'2'V@ MK3(?UHP1RS.M=J"=MV5SAL^-1]MHN'15?"!M3[G%43Z\A+FM-:%DLD!@LH1O M5*&&.[E%24KO;^%LAL2X,/"5:D3/HY0R\G,$).0NMMMSWG&UY:)2M-'$FQ![4TBB!A, /I7ZK MEBW[T+.[D;#-XV'DGBS<'N?X#;^;%VZM^O#H5ZU1KWT'&RC41E);\'ZW'Q)C MWQNO]B=V>+2]_H^FG3QSIM=<&A"XLI31Y;45I=MN;A>D&M\02T6VO;Q9V0&( MVCG8\Y6R6>H6[H)^I.9_ 5!+ P04 " %@QM3(:%*!AL# # "0 &0 M 'AL+W=OOMQ@-=;Z2^82]F%5Z31R*?JB57 M([O/DM*"E(*R$G"2S:UK>'4+&T$3\9.2G1A< VUEQ=BS'GQ+YY:CB4A.$JE3 M8/6W);/V6_7-C7IE984%N6?Z+IG(SMR(+I"3#=2X? MV.XKZ0SY.E_"TU,OX*+EZ2I5.+I9<[0@N7P$N M4T#^UK12:R2!Q*N<@+,[(C'-Q3GX")X>[\#9A_.9+555K;63KL)-6P$=J7"/ M7X$++P!R$#2H;]^M=O;5MG+:VT6]7=2DX^3C;K% M1YO31.H?$$#D!H$?Q"-40R!$'@J"T,P:]*S!).N/+*,) 5G-2RIK3DXC!P'I;T(C@%/1>WA13U> M=/+M.;D_HX/*7AAX:+SFAC#?'X;M$<8]83Q)^(4S(4!E/#]-L+%AO6'D1A". M< V!KGKM O_(E$+G_UGO3$\J4<0X2>JBSK$DJ>IWJO&ULC51-;]LP#/TKA+%#"W3U5](.@1.@23IL MAPY!BVZ'80?%9F*ALN1*=-/^^TJRXR5=$BR'6*+X'A\ID=E&Z2=3(A*\5D*: M<5 2U:,P-'F)%3.7JD9I3U9*5XSL5J]#4VMDA0=5(DRBZ"JL&)?!)/.VA9YD MJB'!)2XTF*:JF'Z;HE";<1 '6\,]7Y?D#.$DJ]D:'Y >ZX6VN[!G*7B%TG E M0>-J'-S$H]G0^7N'GQPW9F<-+I.E4D]N\[T8!Y$3A )S<@S,?EYPAD(X(BOC MN>,,^I .N+O>LG_UN=ML[O X@;PRIJ@-;!167[9>]=G78 <171P!)!T@^ M(C@+0#I#[15IE/:\Z( M33*M-J"=MV5S"U\;C[;9<.EN\8&T/>461Y.K2UAH^R8TO0&3!=P^-[RVMT0C M.)LC,2X,_&!:,U?M<_@,CP]S./MTGH5DHSN.,.\B3=M(R9%(<0)W2E)IX%86 M6.P3A%9VKSW9:I\F)QGOV!ND\04D41(?T#/[;W1T0DS:%S+U=.D1NFT5+V A MF*3]8L+OFZ4A;=_LGQ.A!GVH@0\U.!)JCK9A<\Y<'QRZAQ8]]&C7Q2^V]G%R M':=9^+);GP-^\2".XZCWVY,W[.4-3\J;J:KBY-(V8,<,K!IJ-$+.:DY, +[: M"51P9S.'U __436(W.^#J'#GS5>HUWX4&,A5(ZE]0KVUGS8WOLD^V*=V"K5# MXR]-.\+NF%YS:4#@RE)&E]=6E&['0KLA5?O.6BJR?>J7I9VDJ)V#/5\I1=N- M"]#/YLD[4$L#!!0 ( 6#&U/%I8\TO ( $' 9 >&PO=V]R:W-H M965T MICV8Y$(L')O9#K3_?K8#*:4A&@_$'_><>^YUV"GXZV9(T+U(_;N30SOV'):8E<4<%!XFKL MW87#Z<#&NX"?%/?J9 RVDJ40&SOYFH^]P I"AIFV#,0\=CA%QBR1D?'WP.DU M*2WP='QD_^QJ-[4LB<*I8+]HKHNQ]\&#'%>D8OI![+_@H9Z^Y0]1]Z[0#Z7(D/,%:RD,(=$^ 9LOK9#Z"2REC!46Y+A MV#/?O$*Y0R^%MN;5/'W'8YU@EX:]).P'IE>[EDKZ327]SDJFE93(-2R/+QID MQ.BA^KFMF)HK.141U+]V%4FC(NE4\;W22A.>V_Q+P@C/$(REV# 0*\@DYK2U MN\D;02]*ZKYU1;S2.FBT#CJU/O*,(3&*P!AXME%ML@9O#BM.DBCX>*;M;5@_ MBN->[TR@?^(F)&ULM59=;]HP%/TK5K2'5NJ:.(%\5(#$QZ956B54U/5AVH-)+N#-L9EM M2OGWLYT0* 56J>H+V,X]YYY[ O>ZLQ;RCUH :/1<,JZZWD+KY8WOJWP!)5'7 M8@G1ZPTHQS&$JE561*Y M&0 3ZZZ'O>W!/9TOM#WP>YTEF<,$],-R+,W.;U@*6@)75' D8=;U^OAFB",+ MD],"]]=; M]J^N>%/,E"@8"O9("[WH>JF'"IB1%=/W8OT-ZH+:EB\73+E/M*YB6YF'\I72 MHJS!1D%)>?5-GFLC]@ X/@$(:T!X"(A. *(:X)SS*V6NK!'1I->18HVDC39L M=N&\<6A3#>7V-4ZT-$^IP>G>A#!0:+HQG+^%K#."1'JS!'0Q DTH4Y?H,WJ8 MC-#%I\N.KTU6B_7S.L.@RA">R(!#=">X7BCTA1=0O"3PC=Q&<[C5/ C/,MZ1 M#8KP%0J#$!_1,WPS.C@C)FH,C!Q==()N+!C--PO!"N-:/\_%BFLT((SP'-#/ M[R8:W6HHU:\SN5I-KI;+U3KWLJX0!WWL-538ML/:?^]3+PS;01:WC$E/^_X< M"4RC%+?W E_(:S?RVN?E:;G*]4H2AB9 54ES]$AY@>[A"?@*SA@0-QGB#S<[ M:7(E[S"[PL9['N( 1TDK3@_,/A+8CD.-O/2LO#Y(H9;$U#V"F6FK M\ :;LX8[^W";<;#K0,$[C*[!!TZG491E!TX?C4P2C,/LN-5XKTGBLQ)O>6$: MHZ3FE_U_EW&XHPT_WN==H\+1>WR.7G<%G*9)TCJT^74@SM(T#M,#E_V]J61& MRMP-:X5&ULM57; MCILP$/T5"ZE2*U7AEJ1M1) VV5;M0ZIHH[;/#@Q@K;&I/2R[?U_;$)JN$K8O M^P*^S#ESSA@/22?5O:X D#S67.BU5R$V*]_7604UU3/9@# [A50U13-5I:\; M!31WH)K[41 L_9HRX:6)6]NK-)$M1; MOO8"*P@X9&@9J'D]P!8XMT1&QN^!TQM36N#Y^,3^Q7DW7HY4PU;R7RS':NU] M]$@.!6TYWLGN*PQ^%I8ODUR[)^GZV&7LD:S5*.L!;!343/1O^CC4X0P0+J\ MH@$0/0=1$$47M"S_6]T,"$F'JL5.[KX"ITKU03/?.29 M.Y[Y%9X]J P$FFM"9$%0(N5$6VXS)IJ5@A4LHP()$SE[8'EK]ON/ 92^="K3 MZ:(P"&9!\&9"^6)4OG@UY>32 6ZF\X47I?='_P(R>-'TN.;R;'UCNF_?+/_2]*U[1U7)A"8<"D,9 MS#Z80JN^'?83E(WK*$>)QJ,;5N8/ LH&F/U"2CQ-;(+QGY3^ 5!+ P04 M" %@QM30S"J%\X" "D"0 &0 'AL+W=O]&=NWAL.5H1$(BDIL#JM88I$**9E(Y_%:E5Y]3 9GO'?FO,*S,++&#* MR-\LENG8&E@HA@2OB'QDF]]0&>IIOH@189YH4\;ZUQ:*5D*RO (K!7E&RS?> M5A/1 +C!$8!7 ;R/ /\(P*\ OC%:*C.V9ECB<,39!G$=K=ATP\R-02LW&=7+ M.)=\!:&>"P+H; 829T2)^,]?D6^^Q-YCN>VZ)F>C'8Z MQ/CUM/F&SC]"-UUQ#E0BB;>HX&R=F6U]M@ *22;/AQTIKNH45R;%U9$4MQ # MQZ1MZDM@SP#U?[H.+_S =1SE;-VIW"YA)+:)/5"=/G MT5 4.(*QI0X< 7P-5HC:5O+[/'N^@MI7T.GKB4E,U#_7LK)M;DNRX--%.(SK M6H1^+;;?N0%GD( 2&G]E!P[J'(.O[L#!H7E5. Z\'X:Y[E'KU[6LZZ_MOT[8 M?^R_[_/L^7*=][/8.6$'QJU+VWH$.Z7@G*CF2%J:H+)E6--LU47:. ZP#U/6%,[CHZ07TQ"]\ M4$L#!!0 ( 6#&U.>^K#@L , )H+ 9 >&PO=V]R:W-H965TKJ!3)Y7'O6>-^[Y_F#LAK]>%FP/#V"^%EN%*[^VDO ^B:6RD_*'77Q*5EY@$4$&L;$F&/Z=8 -99BTACO\KHU[M MTRHVOY^M?W3DDF,/*FWLD@90=,W,OS_] 16AB[<4RT^Z7G"O9 MP"/Q41N95\J((.>B_&>/52 :"G3:HQ!6"N&O"E&/0E0IN,CY)3)'ZY89MEXJ M>2;*2J,U^^%BX[21#1*;?DQ'Y^G!++OYZO_0-PK+&_;B"<%-""'L@ MT)#<26$.FGP0"22O#?C(IR85/I.Z"0U@P$P41WA MR)F+>LQ]*N/Y!>-YRW6<27U40/Z[WFFCL(B_#[@8UR[&SL6XQ\5&YL710.*2 M5BAYXNZ6,4/, 0@\%I@S/'V=SJY$E6XFSHUM *'G'/G!T?;X+_:#Q/\CSO,UNL9A%BVYRBYK<8I#< M=KLEF62"X!N[1WH"=&<.%FWO43!=M'(PZ.VWV+ZB08.7ER$8)/(9FX?JKM7. M)A^T"(WII$6G2RP(^RJ*-MXQ^C;:3ERT'>AQ,&\#ZY"+IK0'5_B"*QS$]46: MJG/5C;D39=CJJ:-H3MM7LD,PFD][KR1]>:9H- CT0_VT-UIPWT/QAJV+R>1R M$;SK&@8V;ZA2>AD%[[H*V&],.3FHO1O^-(GE49AR-JAWZP'SVHU5O^S?V,'3 M34\O9LJI]8[AE16:9)"BR>!RAF%6Y2!8+HPLW"RUDP8G,_=YP.$9E!7 \U1* M\[RP#NIQ?/T34$L#!!0 ( 6#&U,F:/?530, ,8* 9 >&PO=V]R M:W-H965TX!_VPOI4X\AN5G!50 M*B9*(F$Y]2[#BWD8&X?*XC>#G6H]$Q/*0HAG,_B>3[W $ &'3!L)BG];F /G M1@DY_NY%O69.X]A^?E/_6@6/P2RH@KG@CRS7JZDW]D@.2[KA^D[LOL$^H,3H M98*KZI?L:MM1X)%LH[0H]LY(4+"R_JBG9W-1K$4)I59$+,DU+$%* MR,DO^D(NE0)\3GY(P\W%^3DT^G$U\CBA'TL_VT M5_6T4<>T-_25Q.%G$@51Z/">'^T=O/?V,?PF!U&3@ZB2BSODFJ@U1DVKJ"]Z M9.-&-JYD!QVREQQKA)89$*PVDHO-0B\W'/=^!FQ+%QR4*V^U9E)IFAKRVU3!(NO!&#=[H*+Q,% 53YGAV[LN1-7=B+[AM%*== M?..&;]S+]TBEI*5^Q<)1(+?@@AO;VS&VZ6RK..VLFK3!2WOQ[K7(GHE8FY55 M!!-H'9,!H,Q\G'5+@,DS1N&;ZG/5PI8?^=\A,;NV/7S7&3I$$86K .N]$[NYK5 M;S49IL.[H?*)X9;GL$3'X'R$"K)NFNJ!%NNJ[U@(C5U,];C"1A.D,<#O2R'T MV\"T,DWK.OL'4$L#!!0 ( 6#&U-IE;&;EP( *(& 9 >&PO=V]R M:W-H965T M.A3-NAV&'12;283:EB%[L%%Z4S'MJ].S4> MRC7FHH0[Q?2Z*+AZNH)?-O6H0?PXP. H 4$_P/" X"P!81O!40M(+*5 M:5*Q=4@X\O%0R9HIXTUL9F&+:=&4OBC-9Y^AHE-!.!S[WCF[*5-9 /O!MZ O MV4D"R$6NV7>N%#=?Y91]9 ^SA)U\.!VZ2$$-U$W; %=-@.! @-ACM[+$E6;7 M90;92P*7U':2@YWDJ^ HXRU_8J%_Q@(OB/?HF;X9[>]!)V]&>T=2";OJAY8N M/$#W7'F6")WF4J\5L-^3N49%'?'G2(BH"Q'9$-&!$ DL0"G(;)")UH#ZC'U5 M4NM]M6NX!I;+3(S-^,*/+CS*==,OTAZWX/.@Y_9"ZJ"3.C@J=88<@8ER QII MLB!#DIR2=H$LI-U+=7E<7H)9V.FJ6RG6)38-WN]T GMBY MXSZ[-]/[EJNE*#7+84%0[_P3U4DU$[$Q4%9V1LPETL2QRQ7]1$ 9!SI?2(D[ MPP3H?DOC?U!+ P04 " %@QM3YM&8-HL" "8!@ &0 'AL+W=OL"P)"7D@L]]0IC MJCO?UUD!)=4WL@*!)QNI2FIPJ[:^KA30W(%*[H>#0>R7E DOG3C;4J4361O. M!"P5T7594O4Z!R[W4R_P#H8GMBV,-?CII*);6('Y6BT5[OR.)6?H9-7]HZ' &"^ (@; 'A.2"Z (A:0.02;92YM.ZIH>E$ MR3U1UAO9[,+5QJ$Q&R;L+:Z,PE.&.),^4"68V&I2@2*9+$LLK2ZH F+HF@-Y M=P^&,J[?DX^-74]\@W$MVL_:&/,F1G@A1A"21RE,H MAU<9'^DKB8(/)!R$08^>Q3^C!U?$1%T)(T<7_:V$2RSARM7NQVRMC<)/].<5 M_F''/W3\PPO\LQTH;*B3V]$$.U(;*G*,W'(O5BB;^[KA2 M?7Y)$(1)YW>B>=1I'EW5O#C1RK2NW==4X_WC"#$R>R:RR7_KE,1QU*\][K3'_U=O0C&?TBYRQFN;19_^N.\&@B09GZ70YY?&ULC51-C]HP$/TKHYQ:B=V0A(4*A4A\;-4]4$6+VAZJ'DPR)!:.G=H.+/^^ MMA-2N@+42S(>SWMO9FQ/?!1RKTI$#6\5XVKFE5K74]]768D548^B1FYV=D)6 M1)NE+'Q52R2Y U7,#X?#L5\1RKTD=KY4)K%H-*,<4PFJJ2HB3PMDXCCS N_L M>*5%J:W#3^*:%+A!_:U.I5GY/4M.*^2*"@X2=S-O'DR7(QOO KY3/*H+&VPE M6R'V=O&2S[RA30@99MHR$/,[X!(9LT0FC=\=I]=+6N"E?6;_[&HWM6R)PJ5@ M/VBNRYGWR8,<=Z1A^E4$"$-P"A!T@? ^(;@"B#A"Y0MO,7%DKHDD22W$$::,-FS5<;QS:5$.Y/<6- MEF:7&IQ.@N@1GJN:B1,B;+3(]I V,BM-9R!EA$_APPHUH4S!5R(EL4W_" ^@ M2B)1Q;XV.5@F/^OT%JU>>$LOA+7@NE3PS'/,_R7P3?)]!>&Y@D5XEW%-3A % M PB'87 EG^5_HX=WDHGZ=D:.+KI!M[%M>;#W*H>4G,QUUS W;>,%.OOG?*NT M-'?WUQVQ42\VZ>[=7C:R7'3M*. M@$,2C":F-8?+GEX)BB:C/JBMQK^XE17*PCU6!9EHN&Z/M_?V\V#NGL$[_\+, MB?99_Z5IA\R:R()R!0QWAG+X.'GR0+8/MUUH4;N[OQ7:O"1GEF;6H;0!9G\G MA#XOK$ _/9,_4$L#!!0 ( 6#&U-H[- (F ( )(' 9 >&PO=V]R M:W-H965TVT/51" MK;8]3'LPR858.'9F'Z7Y[V<[(:-=DG4OQ&??]]U]9W,W.TJUUSD DN>""SWW M(N9V]NHQ4P> MD#,!&T7TH2BHJE; Y7'NA=YIXX'M.#[(XV=H]%Q9OD1R[7[) ML?8=QQY)#AIET8!-!@43]9<^-W4X X23'D#4 *)7@*@/$#> V FM,W.R;BG2 MQ4S)(U'6V[#9A:N-0QLU3-A;?$1E3IG!X>(19;(GLG0U+3D5FB#=5B0. M/Y HB,*.?-9O1@<#R<1MR6)'%_>5+*<*+NW;2F-Y?9@J ,(&@0"-1%*'K4H:)HE$<7G35;A@6CCY> M7PSHN&IU7 WRW#V7YH]K*L999K60"JC273*&><:]P/4P,*Z!) Q(43_.:$Q2 M6ND!<9-6W.1MXIXDI\@XPZI+V3!)'(^"H/.&_H&+_L:]4#%M54S?IB)E3RP% MD9** 4^[E P3!7U"_AM6Z_#/VEL!:N>ZOB:)/ BL>TB[VPZ6I>NGK_979N#4 M\^$/33VM[JG:,=/[.&2&,AA-S6-2]02H#92E:Z);B:8ENV5NAB8HZV#.,RGQ M9-@ [1A>_ 902P,$% @ !8,;4PLG5/I* P J L !D !X;"]W;W)K M&ULK59=;]HP%/TK5K2'5MI(['Q!!4A\;%H?JJ&B MK@_3'DQB(&H29[:!]M_/=D)(@X.HU!>(G7..[[FV;^[P0-D+WQ(BP&N6YGQD M;84H[FR;1UN28=ZC!*CG%FP\ MI#N1)CE9,,!W68;9VY2D]#"RH'6<>$PV6Z$F[/&PP!NR).*I6# YLFN5.,E( MSA.: T;6(VL"[^80*8)&_$[(@3>>@;*RHO1%#>[CD>6HB$A*(J$DL/S;DQE) M4Z4DX_A7B5KUFHK8?#ZJ_]#FI9D5YF1&T^OA)*D.^ MTHMHRO4O.)18W[= M.."9A591I E>?F/7ZM$- @PZ""@BH#:!+>#X%8$]UJ" M5Q$\G9G2BL[#' L\'C)Z $RAI9IZT,G4;&D_R=6^+P63;Q/)$^.EH-$+H(7: M! X835.PI@?,8G S)P(G*;\%W\#3<@YNOMP.;2&75$0[JN2GI3SJD(<(/-!< M;#GXGLRX>""%;?. MO:OEW*[<;S$CW]2IC<$"O\G;),"$,9QOB'[^,UEQP>3-^'MA,:]>S-.+>5=M MM*P 7. \3O*-:5-+J4!+JI\+ELA*&X$]3G>+ M)JIEFDD,>J[7,F%&^1TF&M]2^*%D%PGKB!*>9[%_7E]-,-2=;'2*$WU>LKM- MH&OJI@GE-7>D]& W6IB,L(UN!3F(Z"X797-0S];MYD0W6:WY*;R;E4WC2:;L M81\PV\@R"E*REI).+Y25C)5M83D0M-"-THH*V7;IQZULI0E3 /E^3:DX#M0" M=7,^_@]02P,$% @ !8,;4P3^2\5;"0 RD4 !D !X;"]W;W)K&ULS9Q;;^.X%<>_"F'TH06RMJ@;J4428*3LH@MT=H*9 M;O=AT0Z6(9W'B:^4$='U.'O3QT>^O(US;[G M*R$*\K99;_.KV:HHGGY<+/+[E=C$^3Q]$MORFXP_%.GV]FM'9_H.OR>.J MJ#Y87%\^Q8_BFRA^>[K-RG>+@Y5ELA';/$FW)!,/5[-/],<;2KWJB+K)OQ+Q MFBNO274M=VGZO7KSR_)J9E4NB;6X+RH;%U_3U[\+>46U@_?I.J__)Z^R MK34C]\]YD6[DP:4'FV2[^QN_R9Y0#K #Y !;'F#W/<"1!SA]#W#E 6[=,[M+ MJ?OA)B[BZ\LL?259U;JT5KVH.[,^NKS\9%O=^&]%5GZ;E,<5U]^*]/X[29_J MF_"TCK\B+?+9/M(RC]$O(GL/LGCN[4@?[T119RL\[]=+HK2 MF\KFXEZ>.=R=V4;._#E^)PZ](+9ET[^0!AT^U#I]NU>0?K],K0#U6X+LEM_%Z.HX)\RK)X^RBJUQ?D2]WU%^2G M75<+2I.EE^ M03XGVV3SO-'=VIU)7INLV/)RS>86O5R\:!QQ#XZX8QV)WS!'=B8]Q1';TKOA M'=SPS&Z(BI=5L&^?-W2C)@IZCQIJ@9!81D=4J$7IIIR9Y'&M*@K9R-T[T<+O-^R5KG\! MR;D@X8S: @]@8C0MHH@X6R#B-AF$1D2 M(9&TI4:(/0\0%P#1MAG1'1%B&E^1--V0>#Q6;.5YP3Z?;*PR(?H(APVDMIWS M"X<-L+9'PQH7#FFS<2LY.M1L +;=\7@Q1CFD376H87$.,+:G?,ZP-8\&;FOB M%.F:,;59TUG MFW&]B#ED+::7,!N'/#:-O-ZA'+8;5KS\M'#4OYA;@&Z[='H MQF5$VN2]8ML!>CL=]!XC(])FC]AV@.&.F> $3:4L/%P28:#B#;,2/[&!F1 MIC^PQ\>Z1\>P"L-T.8(]1#FFS M3SR[P&W7S.U!TB%M!8W>0##M J9=,Z:/D0YI^@-PT&!1_\TN$"K=W1M,:E0]ILW$EJX6,-B.UVS*5'K;.P]EC#/ $N0!NMV.B/40[I*VF=MAZ%SP@MFTU0P21#T\(+5G M)O4QZN%IDA[E'7(0GY0E5?/<^93J\2UYZR,>'M#:\\\O'A[@VAN-:UP\I,WF MC:3X4 -D>Z.SUKAX2)N-H8;!$'CLF7D\3#RD,545 MH6#TTSGZ,/'CZ0VY\N MKQWZ[;PVFR,Y9!^([1^5U]8ZHN$UOG;N Z_]T;S&Q4/:Y/TBV@=D^Z.7%7'Q MD#;[1+0/Y/8[\M1#Q$/::@8)LO[B ZA],ZB/$0]?D^NH"C*P>ABE(,8\?3ZI M>H@7L>VC'SX VV?GUP\?B.U/O\X8^II:%6KCHPVH[4^_TACZ[95&BLQ)&""9 MF9$\3#]8NR+$<=H%)IIFKN6A!50 ;S9=0CMD[82VB\WA&$";'970UCJB0;8] M=Y <&@-DL^DK02+6K@0Q1#0#:K/I2T$BUBX%02,:X,VFJUR,F*YT$=$/!JAF M9E0?HQ],E_ HPP5S2BD_-,^@3ZD?/U77VT<_& ";\?/K!P-BL^D7&$-ILWDO M'72T<: VGWZ),>3M)4:*S*?+JL=LC;66T7 M2UYQ@#8_*JNM=42#; >#% =B\^GK02)ID_<,:( VG[X>).+M>A TH('=?+KJ MO(BWJ_-\+'?%@=3\J.H\HWQP7OQ:L;J'>'"@-0_.+QX! MX#J8?HTQE#:;=]+'*^4!V<'TJXQAH%EE1!YI ^!Q8.;Q,/&0QKK$H[-9TUD@ M=S!=4CL,VDEMM)HF &0'1R6UM8YH@.UC:;0 >!U,7P8229N\9T #LH/IRT"B M0%,&@@4TD#N8KD O"MH%>AXF'@& .CBJ0,\H'H$NWX%'B[(YQSQY/FGA;K_$ M%;74+3S6^=6#6LIV&6OZ9<9P;[1Y-_$R%6HI6V*LZ9<:P[W1?ANNE TQEAG, M S=_2&L-?="L@6C;&;9_6,JN&6NZ#'>X-];$!/(<0BUERXQU5));[XN&X,'< MQO:C6,J>&&OZXI!H;Y3WC7!E@XPU?7E(M#?:+\*5/3+6= 5[T=Y8\Z$$#1AE M=XQU5,V>45GVMC_"" T==<=EGRV7)U*7+_V>3&AC[R/]$ZB+NK^13C@+C_;6 M&ERT#)M"%9"/W]IH&'.TO0B)!I7"Z*ZMC8.&'&TSVL*FNWY^H?QL1O4K)Y_C[#$I@V M'LK#K'F5(L]VOQNR>U.D3_4O:=RE19%N MZI?;[G^/U!+ P04 " %@QM33>ED=P$# M #A!P &0 'AL+W=O,_27 V.X,^_9L(H=]L=8ISW$B0:VSC,G=':9B.W!\9W_PQ!=+;0[<87_% M%CA%_;R:2-JY%4K",\P5%SE(G ^3:0/@QJ69 MN\),<,I, (\BUTL%G_,$DW\!7.)<$0_VQ.^"LXB/; >A?P6!%_@-?,;_K>V= M(1-640PM7'@";KID$J]-.24P83NJ<@TCBEN^0+O^.9HI+:ED?YTQUJZ,M:VQ M]@EC8Y%EE"AE;"IZ20KEANS2BP9E,REL)E53E@KDKD4V#WPS]+L>_?KNIH%1 MIV+4.@QF.V@,TY;)Y*JL/G4%7TA#*^!4B2BYH*M7^Q1) M9;1!29VE$ $J=X0'QB6\L'2-3=X6K*.:MV$KZ%6^%H5R+!2THDYS0+I50+IG M S*1/$98H2RR!&(.L:V;FV:>O8IG[^/$*6 ;>NIL MEC8&L7=4,E'[9,5$E>'H@P")&#%1@.\H8ZYLB,[4;8'6J2',3J6"OU> MYY"J6^N6&SXXOZ/Y58R;OS#%\'MD&PO=V]R:W-H965T+L>-)L M>7K&3AJ*1.FA\=CS?_['8Z>=Q8,K 4B\5*9VRZ@D:A92NKR$2KF);:#FE9W% M2A&'N)>N05!%$%5&)M/IK:R4KJ,L#7-KS%+;DM$UK%&XMJH4GE9@;+>,XN@\ M\:3W)?D)F:6-VL,&Z&NS1H[D2"ET!;73MA8(NV5T%R]6,Y\?$KYIZ-S%6/A* MMM8>?/"Y6$93;P@,Y.0)BC]'N =C/(AM/ _,:-S2"R_'9_K'4#O7LE4.[JWY MK@LJE]&[2!2P4ZVA)]M]@J&>N>?EUKCP+[H^]X9WS%M'MAK$'%>Z[K_J93B' M"T'\_HH@&01)\-UO%%P^*%)9BK83Z+.9Y@>AU*!F<[KV3=D0\JIF'67Q?"+6 M?!" "(78D,T/"_'J 4AIX\07A:C\L;U.)?%N7B/S@;SJRTFH]TD0&=7H!^>6TTG\>-NZPBYHS__PYR-S%E@WEQA_BF_ MMRE42Z5%_0N*?U7=PVX#S%_Y8\8/P/]2>;QT(2^:XN_WH\*]KITPL&/E=/)V M'@GL[TP?D&U"G[:6N.MA6/(S _0)O+ZSELZ!;_WX<+/?4$L#!!0 ( 6# M&U.AA/-$\0$ $X$ 9 >&PO=V]R:W-H965T+%+B>^2C*">-T@>3 R!Y+61I%C1'K.:,F2R'@IN1JJ"T)SNE"X[6U7MF M*@U\ZT&%9%$03%G!14G3Q.^M=)JH&J4H8:6)J8N"Z],=2-4L:$C/&X]BGZ/; M8&E2\3VL 9^JE;8>ZUFVHH#2"%42#;L%O0WGR]C%^X!G 8T9V,0IV2AU<,Z/ M[8(&KB"0D*%CX'8YPA*D=$2VC)>.D_8I'7!HG]F_>>U6RX8;6"KY6VPQ7] 9 M)5O8\5KBHVJ^0Z=GXO@R)8W_DJ:-'=]0DM4&5=&!;06%*-N5OW9]& #"^ H@ MZ@#1>P%Q!_"=8VUE7M8]1YXF6C5$NVC+Y@S?&X^V:D3I;G&-VIX*B\,TG([( M+WO]IM8GLD:5'>;DPST@%]*0GUQK[MK\D7PF)N<:3,+09G58EG49[MH,T94, M#_Q$XO 3B8(HO(!>OAL=O$4SJ[27&_5R(T\77Z'[^E(+/)$_MQN#VH[0W_]P MQCUG[#G'5SC?MN]2@UK\U./=LSJFD\EL%H\3=AQVXE)8?#,(:\MC@]MV+^V! MZ[TH#9&PL\!@]&5"B6ZGMW5057X -@KM.'DSMP\>M NPYSNE\.RXF>I_(>D_ M4$L#!!0 ( 6#&U-STC/Q,@( L% 9 >&PO=V]R:W-H965TZ!"H&T/50^&#,1: MQT[MX6/_?<=.2.EVH;TDGO&\]V;&'@^/VCS9' #9J9#*CH(PX$(%Z=#[%B8=ZCU*H6!AF-T7!3?/ M$Y#Z. JBX.Q8BEV.SA&FPY+O8 7X6"X,66'#DHD"E!5:,0/;43".!M..B_ *4CIB"B-GS5GT$@ZX.7ZS/[1 MUTZUK+F%J9;?1(;Y*.@'+(,MWTM/(TZ'11V9<-+&YA>^- M1U,U0KE37*&A74$X3*->BRT!A0$Z&F0+R=6 W'&<-?G>_:./:YF M[.[-_3!$TG7H<%-K3"J-^)I&S.9:86[9!Y5!]B=!2 DW6X75837>9J+'_B*_\$]HTJO!_$U3/1-S;G9"629A2Y3M5H^2 M,M7H50;JTM_>M4::!;_,Z;4"XP)H?ZLUG@TGT+Q_Z2]02P,$% @ !8,; M4URGT&ULI53; M;MLP#/T5P1N&%MCJ6YP576(@25NL#P6*!MT>ACTH-A,+E25/8B[]^^GB>&F: M! 7V8DL4S^$A)7*PENI95P!(-C47>AA4B,U5&.JB@IKJ"]F ,"=SJ6J*9JL6 MH6X4T-*!:AXF4=0/:\I$D ^<[4'E [E$S@0\***7=4W5RQBX7 ^#.-@:'MFB M0FL(\T%#%S %?&H>E-F%'4O):A":24$4S(?!*+Z:9-;?.?Q@L-8[:V(SF4GY M;#=WY3"(K"#@4*!EH.:W@@EP;HF,C#\M9]"%M,#=]9;]UN5N#T(TL2U# M6+1QQCY.TQ>2QI])$B7Q 3V3 M=Z.C$V+2KHRIHTO?4\:)+>.M+>.-MVGR:S33J,R;_7TB6*\+UG/!>H>#V<:^ MT@TM8!B8SM6@5A#DGS[$_>B;_]X)!'. I*&L/'17GC]S_+;/5[DIPFJW>J<\ M7HG..M'9_XHN9 T$Z0;T4>'9&UF]M)_NBW_K%5]&<1KO91#NM$T-:N&FB2:% M7 KT[["S=@-KY/ITSSXV@\S/G7\T?@K>4[5@0A,.&PO!6TY&+MS'TPS)10.C"VLC94!);Z MT<&1FT'16YZ22Z6;V"Z"^SMMEQ\ FQD(Y$)T OO$&4;#BAK#M+RQDV9Q8WP" M!>UXLJZLPKFFZZA_2;8.S<+N!M5A0 :HTH[ MR#F=*TD;#1N/=F!I9TR(.W@B?A1[W*MBIV8]J)CLAE90.W0T;@+\NVR.>Y?V M=;Q!Q1^4^;RTVY'-'+J,W6I6\%4S7Q6= (P]PMEI58GU)\'GLF1N\R\..!K2 MC5^P4)H_VFC0*C-K8)H$#TP;/MNU_-*TFK"5V;33JL U]]^@YK^;YSF33%.Q M*]KV_C%G^=6*VR/D7VAN_JT<*O:*C*^.7V-[;!Z[R.0MB'P#Y8[3H]08MD?C MSOF[=_IVU@#>YTP^.80MO:%3^[*[QV_7YZR@ M2V$F'9B1[?@;R_FR3+M5MY"(=M5V_!6V%R7=*Y:-Q67.5BP?MU,]GS;#P YL MU/8"AT/DIKG\".;C,#\"&!8'4X#Y."\LSO^TGP&Z'X=AV@9>9(#Z#% ?Y^5# MQLT'B^/W2>WEWVF:QG&28!D=C[T*QEC>D@2^?C9,&WA@<2#2G^4:KS;>(<_W M 5;3YSH$VRG>B=A.\5P#XL\;>*2IO]I8'/# JH#U#L3WQX&>\OO$,505TX8] MP3B2IA@"O>COT21!LI/ QU\?["F)XS3U(X#Y%<0QAL#3B".8 M" (7'*NQS $P( L !?3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:(7->=I3W;+T]!;X"O.DQQ0FE(2S,.\,W2?S+W M\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'C#FB;U4 M2KMQ;^E]?3(8N'(I*N[ZIA8:]BR,K;B'M_9QX&HK^-PMA?"5&J3#X6A0<:E[ M9Z?;+YPRT'D'%O M-(03+J1UOCFB.3\'QF6%O>!>_&[-JI;Z,9P&?L4@^AE-'+:O M;1!/['\)HUDL9"DN3+FJA/9M'*U0 5"[I:Q=CVE>B7'OW#P+&WX/?,'UO/UM M'J"B2-D3"3OL];S!HT31SB@YAV^?LV]<<5T*UH3018 I IA^&B [F/ (,D,@ ML_\18(9/YID-,EC^_' H$L/@WRG+ME!#E"($>TD$F? M35=5Q>VF"9Y\U!(^R;5G7\O2K"+(0P3RD!8R[;TA+6;19W^"H[W0349\N\)M/&-,5"_$?AGU&90+-C/OLN'KD*@2R%F._ M84Y)B*62#/N-XBK!9OQ%=,$PCR3$(DD@26_'+)O N#@W565THSK1H<1$DE"; M!++T;=@!&6;"PR"96:X=;ZKK;C QE23$+DD@3U]6M3(; <67-^43FZQLN>1. ML(F*B[ $DTE";),$,6"_[VX#FPL>8F&HR M8M5 FIQRN L_O!TS3#09M6C>U]D?$J)38-2.00MN%F-BGLFH&Y:/:\1M.&-, M3#49M6KV&SN@QIB8:K+/G F[SV),3#49L6I>=6BWTU\BK!W WX,+X3O1Q)R3 M$3OG58,28FH()80*\]&F1-5K8]F@L]6IO<8TST.0#J!@A; MU\1T %)J"" M6D"[T?S"WC;&F)B "NJ%G'US".UXCQ]2P10THE[3^6"]*[88$[/0 MJ+'0H#G8G9W.Q4)J,?\!7^%@>\E5.0%[P$O[_$9>A)75Q4JI<]AVH[\;/M\^ M6KE]+/3L7U!+ P04 " %@QM3TDF\;1$" 7)@ &@ 'AL+U]R96QS M+W=OINW]?%Q_%PJJMF M-X[]CY3J>E>.;;WK^G(Z7]ETP[$=S\MAF_IV_=YN2]+E,J?A=D;S_'0[<_'Z MV9?_F=AM-OMU^=FM?Q_+:?S'X/2G&][KKI2Q6;RVP[:,JR9]'*ZG:[H5-FC1WD$*0SA]D$&3S!SD$^?Q! 4$Q?U"&H#Q_T#T$W<\?] !! M#_,'/4+0X_Q!LD09EP1)$ZP)M!;D6@B\%@1;",06)%L(S!9$6PC4%F1;"-P6 MA%L(Y!:D6PCL%L1;"/16U%L)]%;46PGTULG'-H'>BGHK@=Z*>BN!WHIZ*X'> MBGHK@=Z*>BN!WHIZ*X'>BGHK@=Z&>AN!WH9Z&X'>AGH;@=XVV2PAT-M0;R/0 MVU!O(]#;4&\CT-M0;R/0VU!O(]#;4&\CT-M1;R?0VU%O)]#;46\GT-M1;R?0 MVR>;W01Z.^KM!'H[ZNT$>COJ[01Z.^KM!'H[ZNT$>@?J'01Z!^H=!'H'ZAT$ M>@?J'01Z!^H=!'K'Y&@>!WH%Z!X'>@7H'@=Z!>@>!WAGUS@1Z9]0[ M$^B=4>],H'=&O3.!WAGUSM^I=QT_#Z5>>[[6^/SOI'H\WUNNC[\LOTY.WMX+ MSNFVHC[_!5!+ P04 " %@QM3P(AM=.D! !^)0 $P %M#;VYT96YT M7U1Y<&5S72YX;6S-VEU/PC 4!N"_0G9K6.G7_(APH]ZJ%_Z!NAUD85N;MB#\ M>[L!)AHE&DQ\;UB@[7G/>I+GBNNGK:,PVK1-%Z;9(D9WQ5@H%]2:D%M'75J9 M6]^:F+[Z%^9,N30OQ,1D4K#2=I&Z.(Y]C6QV?4MSLVKBZ&Z3?@ZU[::9IR9D MHYO=QCYKFAGGFKHT,:VS=5=]2AGO$_)T^#]B?>UB3 M]W5%HT?CX[UITRZV:5B(VX9"?KS$%SW:^;PNJ;+EJDU'\N \F2HLB&+;Y+NB M9\>38[IAVGWRD_.',L<"T\Y';UU($_/T^[C#2/K38Y<*D8_U\5=\3TRE3WX_ MZJ==4?7#['2]K]8OAWD$-CQ.O^./,WZO_\L^!$@?$J0/!=*'!NFC .GC'*2/ M"Y ^+D'ZX!.41E!$Y2BD&UL4$L! A0#% @ !8,;4Z0=-_Y1!0 3!8 !@ M ("!#@@ 'AL+W=O&PO=V]R:W-H965T&UL M4$L! A0#% @ !8,;4XVG@;9E! >P\ !@ ("!EQ8 M 'AL+W=O 0 %02 8 " @3(; !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ !8,; M4ZC=.X\M$ 12H !@ ("!AB8 'AL+W=ODV !X;"]W;W)K&PO=V]R:W-H M965T&UL4$L! A0#% @ !8,;4^]!8/ '! CPD !D M ("!(CT 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ !8,;4WN*:]>Q @ P04 !D ("! M>DD 'AL+W=O&UL4$L! A0#% M @ !8,;4Q2%D8OG @ &0< !D ("!_U0 'AL+W=O&UL4$L! A0#% @ !8,;4V3&PO=V]R:W-H965T&UL4$L! A0#% @ !8,;4YW:0RR\ @ Y04 !D M ("!8V@ 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ !8,;4UTZ[)V[! (PH !D ("!;' M 'AL+W=O=0 >&PO=V]R:W-H965T&UL4$L! A0#% @ M!8,;4^-V%EN2 @ 104 !D ("!D(D 'AL+W=O&PO=V]R:W-H965T$LA0( &0% 9 " @1F0 !X;"]W M;W)K&UL4$L! A0#% @ !8,;4T)*&PO=V]R:W-H965T&UL4$L! A0#% @ !8,;4TB9OK=F @ /04 !D M ("!()T 'AL+W=O&PO=V]R:W-H M965TD !X;"]W;W)K&UL4$L! M A0#% @ !8,;4Z8X3^-P P GPH !D ("!YZ8 'AL M+W=O&PO=V]R:W-H965TM !X;"]W;W)K&UL4$L! A0#% @ !8,; M4TPQ[2[+ @ B0< !D ("!9K 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ !8,;4VO_QJ)S @ #08 M !D ("!$+D 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ !8,;4R&A2@8; P P D !D M ("!/\$ 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ !8,;4Q&T5#GJ @ 2@D !D ("!(LH 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ !8,;4Y[Z ML."P P F@L !D ("!P]( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ !8,;4^;1F#:+ @ F 8 !D M ("!_-P 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ !8,;4PLG5/I* P J L !D ("! M$^4 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ !8,;4])A2/W? 0 Q , !D ("!7O4 'AL+W=O&POH! 0!?&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4 " %@QM3 MP(AM=.D! !^)0 $P @ '="@$ 6T-O;G1E;G1?5'EP97-= :+GAM;%!+!08 2 !( *\3 #W# $ ! end XML 77 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 78 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 79 FilingSummary.xml IDEA: XBRL DOCUMENT 3.21.2 html 53 328 1 false 17 0 false 4 false false R1.htm 00000001 - Document - Cover Sheet http://taylordevices.com/role/Cover Cover Cover 1 false false R2.htm 00000002 - Statement - Consolidated Balance Sheets Sheet http://taylordevices.com/role/BalanceSheets Consolidated Balance Sheets Statements 2 false false R3.htm 00000003 - Statement - Consolidated Balance Sheets (Parenthetical) Sheet http://taylordevices.com/role/BalanceSheetsParenthetical Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 00000004 - Statement - Consolidated Statements of Income Sheet http://taylordevices.com/role/StatementsOfIncome Consolidated Statements of Income Statements 4 false false R5.htm 00000005 - Statement - Consolidated Statements of Shareholders Equity Sheet http://taylordevices.com/role/StatementsOfShareholdersEquity Consolidated Statements of Shareholders Equity Statements 5 false false R6.htm 00000006 - Statement - Consolidated Statements of Cash Flows Sheet http://taylordevices.com/role/StatementsOfCashFlows Consolidated Statements of Cash Flows Statements 6 false false R7.htm 00000007 - Disclosure - 1. Summary of Significant Accounting Policies: Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies 1. Summary of Significant Accounting Policies: Notes 7 false false R8.htm 00000008 - Disclosure - 2. Accounts and Other Receivables: Sheet http://taylordevices.com/role/AccountsAndOtherReceivables 2. Accounts and Other Receivables: Notes 8 false false R9.htm 00000009 - Disclosure - 3. Inventory: Sheet http://taylordevices.com/role/Inventory 3. Inventory: Notes 9 false false R10.htm 00000010 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts 4. Costs and Estimated Earnings on Uncompleted Contracts: Notes 10 false false R11.htm 00000011 - Disclosure - 5. Maintenance and Other Inventory: Sheet http://taylordevices.com/role/MaintenanceAndOtherInventory 5. Maintenance and Other Inventory: Notes 11 false false R12.htm 00000012 - Disclosure - 6. Property and Equipment: Sheet http://taylordevices.com/role/PropertyAndEquipment 6. Property and Equipment: Notes 12 false false R13.htm 00000013 - Disclosure - 7. Short-Term Borrowings: Sheet http://taylordevices.com/role/Short-termBorrowings 7. Short-Term Borrowings: Notes 13 false false R14.htm 00000014 - Disclosure - 8. Legal Proceedings: Sheet http://taylordevices.com/role/LegalProceedings 8. Legal Proceedings: Notes 14 false false R15.htm 00000016 - Disclosure - 10. Income Taxes: Sheet http://taylordevices.com/role/IncomeTaxes 10. Income Taxes: Notes 15 false false R16.htm 00000017 - Disclosure - 11. Earnings Per Common Share: Sheet http://taylordevices.com/role/EarningsPerCommonShare 11. Earnings Per Common Share: Notes 16 false false R17.htm 00000018 - Disclosure - 12. Related Party Transactions: Sheet http://taylordevices.com/role/RelatedPartyTransactions 12. Related Party Transactions: Notes 17 false false R18.htm 00000019 - Disclosure - 13. Employee Stock Purchase Plan: Sheet http://taylordevices.com/role/EmployeeStockPurchasePlan 13. Employee Stock Purchase Plan: Notes 18 false false R19.htm 00000020 - Disclosure - 14. Stock Option Plans: Sheet http://taylordevices.com/role/StockOptionPlans 14. Stock Option Plans: Notes 19 false false R20.htm 00000021 - Disclosure - 15. Preferred Stock: Sheet http://taylordevices.com/role/PreferredStock 15. Preferred Stock: Notes 20 false false R21.htm 00000022 - Disclosure - 16. Treasury Stock: Sheet http://taylordevices.com/role/TreasuryStock 16. Treasury Stock: Notes 21 false false R22.htm 00000023 - Disclosure - 17. Retirement Plan: Sheet http://taylordevices.com/role/RetirementPlan 17. Retirement Plan: Notes 22 false false R23.htm 00000024 - Disclosure - 18. Fair Value of Financial Instruments: Sheet http://taylordevices.com/role/FairValueOfFinancialInstruments 18. Fair Value of Financial Instruments: Notes 23 false false R24.htm 00000025 - Disclosure - 19. Cash Flows Information: Sheet http://taylordevices.com/role/CashFlowsInformation 19. Cash Flows Information: Notes 24 false false R25.htm 00000026 - Disclosure - 20. Risks and Uncertainties: Sheet http://taylordevices.com/role/RisksAndUncertainties 20. Risks and Uncertainties: Notes 25 false false R26.htm 00000027 - Disclosure - 1. Summary of Significant Accounting Policies: (Policies) Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies 1. Summary of Significant Accounting Policies: (Policies) Policies http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies 26 false false R27.htm 00000028 - Disclosure - 2. Accounts and Other Receivables: (Tables) Sheet http://taylordevices.com/role/AccountsAndOtherReceivablesTables 2. Accounts and Other Receivables: (Tables) Tables http://taylordevices.com/role/AccountsAndOtherReceivables 27 false false R28.htm 00000029 - Disclosure - 3. Inventory: (Tables) Sheet http://taylordevices.com/role/InventoryTables 3. Inventory: (Tables) Tables http://taylordevices.com/role/Inventory 28 false false R29.htm 00000030 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables) Tables http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts 29 false false R30.htm 00000031 - Disclosure - 5. Maintenance and Other Inventory: (Tables) Sheet http://taylordevices.com/role/MaintenanceAndOtherInventoryTables 5. Maintenance and Other Inventory: (Tables) Tables http://taylordevices.com/role/MaintenanceAndOtherInventory 30 false false R31.htm 00000032 - Disclosure - 6. Property and Equipment: (Tables) Sheet http://taylordevices.com/role/PropertyAndEquipmentTables 6. Property and Equipment: (Tables) Tables http://taylordevices.com/role/PropertyAndEquipment 31 false false R32.htm 00000033 - Disclosure - 9. Sales: (Tables) Sheet http://taylordevices.com/role/SalesTables 9. Sales: (Tables) Tables 32 false false R33.htm 00000034 - Disclosure - 10. Income Taxes: (Tables) Sheet http://taylordevices.com/role/IncomeTaxesTables 10. Income Taxes: (Tables) Tables http://taylordevices.com/role/IncomeTaxes 33 false false R34.htm 00000035 - Disclosure - 11. Earnings Per Common Share: (Tables) Sheet http://taylordevices.com/role/EarningsPerCommonShareTables 11. Earnings Per Common Share: (Tables) Tables http://taylordevices.com/role/EarningsPerCommonShare 34 false false R35.htm 00000036 - Disclosure - 14. Stock Option Plans: (Tables) Sheet http://taylordevices.com/role/StockOptionPlansTables 14. Stock Option Plans: (Tables) Tables http://taylordevices.com/role/StockOptionPlans 35 false false R36.htm 00000037 - Disclosure - 19. Cash Flows Information: (Tables) Sheet http://taylordevices.com/role/CashFlowsInformationTables 19. Cash Flows Information: (Tables) Tables http://taylordevices.com/role/CashFlowsInformation 36 false false R37.htm 00000038 - Disclosure - 1. Summary of Significant Accounting Policies: (Details Narrative) Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative 1. Summary of Significant Accounting Policies: (Details Narrative) Details http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies 37 false false R38.htm 00000039 - Disclosure - Accounts receivable table (Details) Sheet http://taylordevices.com/role/AccountsReceivableTableDetails Accounts receivable table (Details) Details 38 false false R39.htm 00000040 - Disclosure - Inventory table (Details) Sheet http://taylordevices.com/role/InventoryTableDetails Inventory table (Details) Details 39 false false R40.htm 00000041 - Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails Costs and estimated earnings on uncompleted contracts components table (Details) Details 40 false false R41.htm 00000042 - Disclosure - Costs and estimated earnings on uncompleted contracts table (Details) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails Costs and estimated earnings on uncompleted contracts table (Details) Details 41 false false R42.htm 00000043 - Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails Costs and estimated earnings on uncompleted contracts two table (Details) Details 42 false false R43.htm 00000044 - Disclosure - Maintenance and other inventory table (Details) Sheet http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails Maintenance and other inventory table (Details) Details 43 false false R44.htm 00000045 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsDetailsNarrative 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) Details http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables 44 false false R45.htm 00000046 - Disclosure - 5. Maintenance and Other Inventory: (Details Narrative) Sheet http://taylordevices.com/role/MaintenanceAndOtherInventoryDetailsNarrative 5. Maintenance and Other Inventory: (Details Narrative) Details http://taylordevices.com/role/MaintenanceAndOtherInventoryTables 45 false false R46.htm 00000047 - Disclosure - Property and equipment table (Details) Sheet http://taylordevices.com/role/PropertyAndEquipmentTableDetails Property and equipment table (Details) Details 46 false false R47.htm 00000048 - Disclosure - 6. Property and Equipment: (Details Narrative) Sheet http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative 6. Property and Equipment: (Details Narrative) Details http://taylordevices.com/role/PropertyAndEquipmentTables 47 false false R48.htm 00000049 - Disclosure - 7. Short-Term Borrowings: (Details Narrative) Sheet http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative 7. Short-Term Borrowings: (Details Narrative) Details http://taylordevices.com/role/Short-termBorrowings 48 false false R49.htm 00000050 - Disclosure - Sales by major customer type (Details) Sheet http://taylordevices.com/role/SalesByMajorCustomerTypeDetails Sales by major customer type (Details) Details 49 false false R50.htm 00000051 - Disclosure - 9. Sales: (Details Narrative) Sheet http://taylordevices.com/role/SalesDetailsNarrative 9. Sales: (Details Narrative) Details http://taylordevices.com/role/SalesTables 50 false false R51.htm 00000052 - Disclosure - Income Taxes Table (Details) Sheet http://taylordevices.com/role/IncomeTaxesTableDetails Income Taxes Table (Details) Details 51 false false R52.htm 00000053 - Disclosure - Reconciliation of income tax statutory rate to effective rate (Details) Sheet http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails Reconciliation of income tax statutory rate to effective rate (Details) Details 52 false false R53.htm 00000054 - Disclosure - Components of Deferred Tax Assets and Liabilities (Details) Sheet http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails Components of Deferred Tax Assets and Liabilities (Details) Details 53 false false R54.htm 00000055 - Disclosure - 10. Income Taxes: (Details Narrative) Sheet http://taylordevices.com/role/IncomeTaxesDetailsNarrative 10. Income Taxes: (Details Narrative) Details http://taylordevices.com/role/IncomeTaxesTables 54 false false R55.htm 00000056 - Disclosure - Earnings per common share table (Details) Sheet http://taylordevices.com/role/EarningsPerCommonShareTableDetails Earnings per common share table (Details) Details 55 false false R56.htm 00000057 - Disclosure - 13. Employee Stock Purchase Plan: (Details Narrative) Sheet http://taylordevices.com/role/EmployeeStockPurchasePlanDetailsNarrative 13. Employee Stock Purchase Plan: (Details Narrative) Details http://taylordevices.com/role/EmployeeStockPurchasePlan 56 false false R57.htm 00000058 - Disclosure - Stock option plans table (Details) Sheet http://taylordevices.com/role/StockOptionPlansTableDetails Stock option plans table (Details) Details 57 false false R58.htm 00000059 - Disclosure - Stock options roll foward (Details) Sheet http://taylordevices.com/role/StockOptionsRollFowardDetails Stock options roll foward (Details) Details 58 false false R59.htm 00000060 - Disclosure - Stock option plans - Stock options outstanding and exercisable (Details) Sheet http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails Stock option plans - Stock options outstanding and exercisable (Details) Details 59 false false R60.htm 00000061 - Disclosure - 14. Stock Option Plans: (Details Narrative) Sheet http://taylordevices.com/role/StockOptionPlansDetailsNarrative 14. Stock Option Plans: (Details Narrative) Details http://taylordevices.com/role/StockOptionPlansTables 60 false false R61.htm 00000062 - Disclosure - 15. Preferred Stock: (Details Narrative) Sheet http://taylordevices.com/role/PreferredStockDetailsNarrative 15. Preferred Stock: (Details Narrative) Details http://taylordevices.com/role/PreferredStock 61 false false R62.htm 00000063 - Disclosure - 16. Treasury Stock: (Details Narrative) Sheet http://taylordevices.com/role/TreasuryStockDetailsNarrative 16. Treasury Stock: (Details Narrative) Details http://taylordevices.com/role/TreasuryStock 62 false false R63.htm 00000064 - Disclosure - 17. Retirement Plan: (Details Narrative) Sheet http://taylordevices.com/role/RetirementPlanDetailsNarrative 17. Retirement Plan: (Details Narrative) Details http://taylordevices.com/role/RetirementPlan 63 false false R64.htm 00000065 - Disclosure - Supplemental cash flow information (Details) Sheet http://taylordevices.com/role/SupplementalCashFlowInformationDetails Supplemental cash flow information (Details) Details 64 false false All Reports Book All Reports tayd202110k.htm ceo302certification2021.htm ceo906certification2021.htm cfo302certification2021.htm cfo906certification2021.htm tayd-20210531.xsd tayd-20210531_cal.xml tayd-20210531_def.xml tayd-20210531_lab.xml tayd-20210531_pre.xml http://xbrl.sec.gov/dei/2021 http://fasb.org/us-gaap/2021-01-31 http://fasb.org/srt/2021-01-31 true true JSON 82 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "tayd202110k.htm": { "axisCustom": 0, "axisStandard": 3, "contextCount": 53, "dts": { "calculationLink": { "local": [ "tayd-20210531_cal.xml" ] }, "definitionLink": { "local": [ "tayd-20210531_def.xml" ] }, "inline": { "local": [ "tayd202110k.htm" ] }, "labelLink": { "local": [ "tayd-20210531_lab.xml" ], "remote": [ "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-doc-2021-01-31.xml" ] }, "presentationLink": { "local": [ "tayd-20210531_pre.xml" ] }, "referenceLink": { "remote": [ "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-ref-2021-01-31.xml" ] }, "schema": { "local": [ "tayd-20210531.xsd" ], "remote": [ "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", "https://xbrl.sec.gov/dei/2021/dei-2021.xsd", "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd", "https://xbrl.sec.gov/country/2021/country-2021.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "https://xbrl.sec.gov/dei/2021/dei-2021_doc.xsd", "https://xbrl.sec.gov/dei/2021/dei-2021_ref.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-parts-codification-2021-01-31.xsd" ] } }, "elementCount": 354, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2021-01-31": 11, "http://taylordevices.com/20210531": 4, "http://xbrl.sec.gov/dei/2021": 5, "total": 20 }, "keyCustom": 31, "keyStandard": 297, "memberCustom": 13, "memberStandard": 4, "nsprefix": "tayd", "nsuri": "http://taylordevices.com/20210531", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "b", "p", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00000001 - Document - Cover", "role": "http://taylordevices.com/role/Cover", "shortName": "Cover", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "b", "p", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000010 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts:", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts", "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000011 - Disclosure - 5. Maintenance and Other Inventory:", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventory", "shortName": "5. Maintenance and Other Inventory:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000012 - Disclosure - 6. Property and Equipment:", "role": "http://taylordevices.com/role/PropertyAndEquipment", "shortName": "6. Property and Equipment:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfLineOfCreditFacilitiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000013 - Disclosure - 7. Short-Term Borrowings:", "role": "http://taylordevices.com/role/Short-termBorrowings", "shortName": "7. Short-Term Borrowings:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfLineOfCreditFacilitiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LegalMattersAndContingenciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000014 - Disclosure - 8. Legal Proceedings:", "role": "http://taylordevices.com/role/LegalProceedings", "shortName": "8. Legal Proceedings:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LegalMattersAndContingenciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000016 - Disclosure - 10. Income Taxes:", "role": "http://taylordevices.com/role/IncomeTaxes", "shortName": "10. Income Taxes:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000017 - Disclosure - 11. Earnings Per Common Share:", "role": "http://taylordevices.com/role/EarningsPerCommonShare", "shortName": "11. Earnings Per Common Share:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000018 - Disclosure - 12. Related Party Transactions:", "role": "http://taylordevices.com/role/RelatedPartyTransactions", "shortName": "12. Related Party Transactions:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000019 - Disclosure - 13. Employee Stock Purchase Plan:", "role": "http://taylordevices.com/role/EmployeeStockPurchasePlan", "shortName": "13. Employee Stock Purchase Plan:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000020 - Disclosure - 14. Stock Option Plans:", "role": "http://taylordevices.com/role/StockOptionPlans", "shortName": "14. Stock Option Plans:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000002 - Statement - Consolidated Balance Sheets", "role": "http://taylordevices.com/role/BalanceSheets", "shortName": "Consolidated Balance Sheets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:ShortTermInvestments", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PreferredStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000021 - Disclosure - 15. Preferred Stock:", "role": "http://taylordevices.com/role/PreferredStock", "shortName": "15. Preferred Stock:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PreferredStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:TreasuryStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000022 - Disclosure - 16. Treasury Stock:", "role": "http://taylordevices.com/role/TreasuryStock", "shortName": "16. Treasury Stock:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:TreasuryStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000023 - Disclosure - 17. Retirement Plan:", "role": "http://taylordevices.com/role/RetirementPlan", "shortName": "17. Retirement Plan:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueOfFinancialInstrumentsPolicy", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000024 - Disclosure - 18. Fair Value of Financial Instruments:", "role": "http://taylordevices.com/role/FairValueOfFinancialInstruments", "shortName": "18. Fair Value of Financial Instruments:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueOfFinancialInstrumentsPolicy", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000025 - Disclosure - 19. Cash Flows Information:", "role": "http://taylordevices.com/role/CashFlowsInformation", "shortName": "19. Cash Flows Information:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:UnusualRisksAndUncertaintiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000026 - Disclosure - 20. Risks and Uncertainties:", "role": "http://taylordevices.com/role/RisksAndUncertainties", "shortName": "20. Risks and Uncertainties:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:UnusualRisksAndUncertaintiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000027 - Disclosure - 1. Summary of Significant Accounting Policies: (Policies)", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies", "shortName": "1. Summary of Significant Accounting Policies: (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000028 - Disclosure - 2. Accounts and Other Receivables: (Tables)", "role": "http://taylordevices.com/role/AccountsAndOtherReceivablesTables", "shortName": "2. Accounts and Other Receivables: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000029 - Disclosure - 3. Inventory: (Tables)", "role": "http://taylordevices.com/role/InventoryTables", "shortName": "3. Inventory: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000030 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables", "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000003 - Statement - Consolidated Balance Sheets (Parenthetical)", "role": "http://taylordevices.com/role/BalanceSheetsParenthetical", "shortName": "Consolidated Balance Sheets (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000031 - Disclosure - 5. Maintenance and Other Inventory: (Tables)", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventoryTables", "shortName": "5. Maintenance and Other Inventory: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000032 - Disclosure - 6. Property and Equipment: (Tables)", "role": "http://taylordevices.com/role/PropertyAndEquipmentTables", "shortName": "6. Property and Equipment: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "tayd:ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000033 - Disclosure - 9. Sales: (Tables)", "role": "http://taylordevices.com/role/SalesTables", "shortName": "9. Sales: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "tayd:ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000034 - Disclosure - 10. Income Taxes: (Tables)", "role": "http://taylordevices.com/role/IncomeTaxesTables", "shortName": "10. Income Taxes: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000035 - Disclosure - 11. Earnings Per Common Share: (Tables)", "role": "http://taylordevices.com/role/EarningsPerCommonShareTables", "shortName": "11. Earnings Per Common Share: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000036 - Disclosure - 14. Stock Option Plans: (Tables)", "role": "http://taylordevices.com/role/StockOptionPlansTables", "shortName": "14. Stock Option Plans: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000037 - Disclosure - 19. Cash Flows Information: (Tables)", "role": "http://taylordevices.com/role/CashFlowsInformationTables", "shortName": "19. Cash Flows Information: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:NatureOfOperations", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000038 - Disclosure - 1. Summary of Significant Accounting Policies: (Details Narrative)", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative", "shortName": "1. Summary of Significant Accounting Policies: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:NatureOfOperations", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ReceivablesFromCustomers", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000039 - Disclosure - Accounts receivable table (Details)", "role": "http://taylordevices.com/role/AccountsReceivableTableDetails", "shortName": "Accounts receivable table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ReceivablesFromCustomers", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000040 - Disclosure - Inventory table (Details)", "role": "http://taylordevices.com/role/InventoryTableDetails", "shortName": "Inventory table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000004 - Statement - Consolidated Statements of Income", "role": "http://taylordevices.com/role/StatementsOfIncome", "shortName": "Consolidated Statements of Income", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:CostOfGoodsAndServicesSold", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryForLongTermContractsOrPrograms", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000041 - Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails", "shortName": "Costs and estimated earnings on uncompleted contracts components table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryForLongTermContractsOrPrograms", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000042 - Disclosure - Costs and estimated earnings on uncompleted contracts table (Details)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails", "shortName": "Costs and estimated earnings on uncompleted contracts table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "tayd:LongTermContractsDisclosureTableTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "tayd:LongTermContractsDisclosureTwoTableTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:QuantityOfUncompletedProjectsOrProgramsInProgress", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000043 - Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails", "shortName": "Costs and estimated earnings on uncompleted contracts two table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "tayd:LongTermContractsDisclosureTwoTableTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:QuantityOfUncompletedProjectsOrProgramsInProgress", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:OtherInventoryNoncurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000044 - Disclosure - Maintenance and other inventory table (Details)", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails", "shortName": "Maintenance and other inventory table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:OtherInventoryNoncurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "tayd:AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000045 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsDetailsNarrative", "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "tayd:AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryWriteDown", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000046 - Disclosure - 5. Maintenance and Other Inventory: (Details Narrative)", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventoryDetailsNarrative", "shortName": "5. Maintenance and Other Inventory: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": null }, "R46": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Land", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000047 - Disclosure - Property and equipment table (Details)", "role": "http://taylordevices.com/role/PropertyAndEquipmentTableDetails", "shortName": "Property and equipment table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Land", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Depreciation", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000048 - Disclosure - 6. Property and Equipment: (Details Narrative)", "role": "http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative", "shortName": "6. Property and Equipment: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Depreciation", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2019-06-012020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ProceedsFromBankDebt", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000049 - Disclosure - 7. Short-Term Borrowings: (Details Narrative)", "role": "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative", "shortName": "7. Short-Term Borrowings: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfLineOfCreditFacilitiesTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000050 - Disclosure - Sales by major customer type (Details)", "role": "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails", "shortName": "Sales by major customer type (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "tayd:ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-012021-05-31_custom_StructuralSeismicWindMember", "decimals": "0", "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2019-05-31_us-gaap_CommonStockMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000005 - Statement - Consolidated Statements of Shareholders Equity", "role": "http://taylordevices.com/role/StatementsOfShareholdersEquity", "shortName": "Consolidated Statements of Shareholders Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2019-06-012020-05-31_us-gaap_CommonStockMember", "decimals": "0", "lang": null, "name": "us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "span", "p", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ScheduleOfRevenueByMajorCustomers", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000051 - Disclosure - 9. Sales: (Details Narrative)", "role": "http://taylordevices.com/role/SalesDetailsNarrative", "shortName": "9. Sales: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ScheduleOfRevenueByMajorCustomers", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000052 - Disclosure - Income Taxes Table (Details)", "role": "http://taylordevices.com/role/IncomeTaxesTableDetails", "shortName": "Income Taxes Table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000053 - Disclosure - Reconciliation of income tax statutory rate to effective rate (Details)", "role": "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails", "shortName": "Reconciliation of income tax statutory rate to effective rate (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000054 - Disclosure - Components of Deferred Tax Assets and Liabilities (Details)", "role": "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails", "shortName": "Components of Deferred Tax Assets and Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsGross", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000055 - Disclosure - 10. Income Taxes: (Details Narrative)", "role": "http://taylordevices.com/role/IncomeTaxesDetailsNarrative", "shortName": "10. Income Taxes: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxCreditCarryforwards", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000056 - Disclosure - Earnings per common share table (Details)", "role": "http://taylordevices.com/role/EarningsPerCommonShareTableDetails", "shortName": "Earnings per common share table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000057 - Disclosure - 13. Employee Stock Purchase Plan: (Details Narrative)", "role": "http://taylordevices.com/role/EmployeeStockPurchasePlanDetailsNarrative", "shortName": "13. Employee Stock Purchase Plan: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000058 - Disclosure - Stock option plans table (Details)", "role": "http://taylordevices.com/role/StockOptionPlansTableDetails", "shortName": "Stock option plans table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000059 - Disclosure - Stock options roll foward (Details)", "role": "http://taylordevices.com/role/StockOptionsRollFowardDetails", "shortName": "Stock options roll foward (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000060 - Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)", "role": "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails", "shortName": "Stock option plans - Stock options outstanding and exercisable (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000006 - Statement - Consolidated Statements of Cash Flows", "role": "http://taylordevices.com/role/StatementsOfCashFlows", "shortName": "Consolidated Statements of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "lang": null, "name": "us-gaap:DepreciationDepletionAndAmortization", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000061 - Disclosure - 14. Stock Option Plans: (Details Narrative)", "role": "http://taylordevices.com/role/StockOptionPlansDetailsNarrative", "shortName": "14. Stock Option Plans: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:PreferredStockTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:PreferredStockSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000062 - Disclosure - 15. Preferred Stock: (Details Narrative)", "role": "http://taylordevices.com/role/PreferredStockDetailsNarrative", "shortName": "15. Preferred Stock: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:PreferredStockTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:PreferredStockSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "AsOf2021-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:TreasuryStockShares", "reportCount": 1, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000063 - Disclosure - 16. Treasury Stock: (Details Narrative)", "role": "http://taylordevices.com/role/TreasuryStockDetailsNarrative", "shortName": "16. Treasury Stock: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": null }, "R63": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:PensionExpense", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000064 - Disclosure - 17. Retirement Plan: (Details Narrative)", "role": "http://taylordevices.com/role/RetirementPlanDetailsNarrative", "shortName": "17. Retirement Plan: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:PensionExpense", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "b", "span", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InterestPaid", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000065 - Disclosure - Supplemental cash flow information (Details)", "role": "http://taylordevices.com/role/SupplementalCashFlowInformationDetails", "shortName": "Supplemental cash flow information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "span", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InterestPaid", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000007 - Disclosure - 1. Summary of Significant Accounting Policies:", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies", "shortName": "1. Summary of Significant Accounting Policies:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000008 - Disclosure - 2. Accounts and Other Receivables:", "role": "http://taylordevices.com/role/AccountsAndOtherReceivables", "shortName": "2. Accounts and Other Receivables:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000009 - Disclosure - 3. Inventory:", "role": "http://taylordevices.com/role/Inventory", "shortName": "3. Inventory:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202110k.htm", "contextRef": "From2020-06-01to2021-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 17, "tag": { "dei_AmendmentDescription": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Description of changes contained within amended document.", "label": "Amendment Description" } } }, "localname": "AmendmentDescription", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "stringItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_AnnualInformationForm": { "auth_ref": [ "r349" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag with value true on a form if it is an annual report containing an annual information form.", "label": "Annual Information Form" } } }, "localname": "AnnualInformationForm", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_AuditedAnnualFinancialStatements": { "auth_ref": [ "r349" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag with value true on a form if it is an annual report containing audited financial statements.", "label": "Audited Annual Financial Statements" } } }, "localname": "AuditedAnnualFinancialStatements", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_CountryRegion": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Region code of country", "label": "Country Region" } } }, "localname": "CountryRegion", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Cover [Abstract]" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2021", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentAccountingStandard": { "auth_ref": [ "r348" ], "lang": { "en-us": { "role": { "documentation": "The basis of accounting the registrant has used to prepare the financial statements included in this filing This can either be 'U.S. GAAP', 'International Financial Reporting Standards', or 'Other'.", "label": "Document Accounting Standard" } } }, "localname": "DocumentAccountingStandard", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "accountingStandardItemType" }, "dei_DocumentAnnualReport": { "auth_ref": [ "r346", "r348", "r349" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentPeriodStartDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The start date of the period covered in the document, in YYYY-MM-DD format.", "label": "Document Period Start Date" } } }, "localname": "DocumentPeriodStartDate", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r347" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentRegistrationStatement": { "auth_ref": [ "r355" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a registration statement.", "label": "Document Registration Statement" } } }, "localname": "DocumentRegistrationStatement", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentShellCompanyEventDate": { "auth_ref": [ "r348" ], "lang": { "en-us": { "role": { "documentation": "Date of event requiring a shell company report.", "label": "Document Shell Company Event Date" } } }, "localname": "DocumentShellCompanyEventDate", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentShellCompanyReport": { "auth_ref": [ "r348" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true for a Shell Company Report pursuant to section 13 or 15(d) of the Exchange Act.", "label": "Document Shell Company Report" } } }, "localname": "DocumentShellCompanyReport", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r350" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "submissionTypeItemType" }, "dei_DocumentsIncorporatedByReferenceTextBlock": { "auth_ref": [ "r338" ], "lang": { "en-us": { "role": { "documentation": "Documents incorporated by reference.", "label": "Documents Incorporated by Reference [Text Block]" } } }, "localname": "DocumentsIncorporatedByReferenceTextBlock", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "textBlockItemType" }, "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine2": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 2 such as Street or Suite number", "label": "Entity Address, Address Line Two" } } }, "localname": "EntityAddressAddressLine2", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine3": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 3 such as an Office Park", "label": "Entity Address, Address Line Three" } } }, "localname": "EntityAddressAddressLine3", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCountry": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "ISO 3166-1 alpha-2 country code.", "label": "Entity Address, Country" } } }, "localname": "EntityAddressCountry", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "countryCodeItemType" }, "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityBankruptcyProceedingsReportingCurrent": { "auth_ref": [ "r341" ], "lang": { "en-us": { "role": { "documentation": "For registrants involved in bankruptcy proceedings during the preceding five years, the value Yes indicates that the registrant has filed all documents and reports required to be filed by Section 12, 13 or 15(d) of the Securities Exchange Act of 1934 subsequent to the distribution of securities under a plan confirmed by a court; the value No indicates the registrant has not. Registrants not involved in bankruptcy proceedings during the preceding five years should not report this element.", "label": "Entity Bankruptcy Proceedings, Reporting Current" } } }, "localname": "EntityBankruptcyProceedingsReportingCurrent", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r351" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r351" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityExTransitionPeriod": { "auth_ref": [ "r354" ], "lang": { "en-us": { "role": { "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards.", "label": "Elected Not To Use the Extended Transition Period" } } }, "localname": "EntityExTransitionPeriod", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r351" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r352" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityPrimarySicNumber": { "auth_ref": [ "r349" ], "lang": { "en-us": { "role": { "documentation": "Primary Standard Industrial Classification (SIC) Number for the Entity.", "label": "Entity Primary SIC Number" } } }, "localname": "EntityPrimarySicNumber", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "sicNumberItemType" }, "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" } } }, "localname": "EntityPublicFloat", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "monetaryItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r351" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r351" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r351" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r351" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "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" } } }, "localname": "EntityVoluntaryFilers", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityWellKnownSeasonedIssuer": { "auth_ref": [], "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" } } }, "localname": "EntityWellKnownSeasonedIssuer", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_Extension": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Extension number for local phone number.", "label": "Extension" } } }, "localname": "Extension", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_NoTradingSymbolFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a security having no trading symbol.", "label": "No Trading Symbol Flag" } } }, "localname": "NoTradingSymbolFlag", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_OtherReportingStandardItemNumber": { "auth_ref": [ "r348" ], "lang": { "en-us": { "role": { "documentation": "\"Item 17\" or \"Item 18\" specified when the basis of accounting is neither US GAAP nor IFRS.", "label": "Other Reporting Standard Item Number" } } }, "localname": "OtherReportingStandardItemNumber", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "otherReportingStandardItemNumberItemType" }, "dei_PreCommencementIssuerTenderOffer": { "auth_ref": [ "r342" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.", "label": "Pre-commencement Issuer Tender Offer" } } }, "localname": "PreCommencementIssuerTenderOffer", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_PreCommencementTenderOffer": { "auth_ref": [ "r343" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.", "label": "Pre-commencement Tender Offer" } } }, "localname": "PreCommencementTenderOffer", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r337" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "securityTitleItemType" }, "dei_Security12gTitle": { "auth_ref": [ "r340" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r339" ], "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_SecurityReportingObligation": { "auth_ref": [ "r344" ], "lang": { "en-us": { "role": { "documentation": "15(d), indicating whether the security has a reporting obligation under that section of the Exchange Act.", "label": "Security Reporting Obligation" } } }, "localname": "SecurityReportingObligation", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "securityReportingObligationItemType" }, "dei_SolicitingMaterial": { "auth_ref": [ "r345" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.", "label": "Soliciting Material" } } }, "localname": "SolicitingMaterial", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "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/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "tradingSymbolItemType" }, "dei_WrittenCommunications": { "auth_ref": [ "r353" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.", "label": "Written Communications" } } }, "localname": "WrittenCommunications", "nsuri": "http://xbrl.sec.gov/dei/2021", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r149", "r201", "r202", "r325" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "stringItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r149", "r201", "r202", "r325" ], "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "tayd_AerospaceDefenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Aerospace Defense Revenue" } } }, "localname": "AerospaceDefenseMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "tayd_AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Aggregate amount of revenue remaining on uncompleted contracts", "label": "Aggregate amount remaining" } } }, "localname": "AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Aggregate percent complete of uncompleted contracts", "label": "Aggregate percent complete" } } }, "localname": "AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "percentItemType" }, "tayd_AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year", "label": "Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year" } } }, "localname": "AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "tayd_BillingsOnUncompletedContractsOrPrograms": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 2.0, "parentTag": "tayd_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYearNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Billings to date component of Costs and estimated earnings on uncompleted contracts", "label": "Less billings to date" } } }, "localname": "BillingsOnUncompletedContractsOrPrograms", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_CommitmentsForFutureCapitalExpendituresDisclosure": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "label": "Commitments for future capital expenditures" } } }, "localname": "CommitmentsForFutureCapitalExpendituresDisclosure", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "tayd_CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 1.0, "parentTag": "tayd_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYearNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Total costs and estimated earnings", "label": "Total costs and estimated earnings", "totalLabel": "Total costs and estimated earnings" } } }, "localname": "CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYearNet": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Costs and estimated earnings not billed on uncompleted contracts", "label": "Costs and estimated earnings not billed", "totalLabel": "Costs and estimated earnings not billed" } } }, "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYearNet", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_Disclosure9.SalesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Sales" } } }, "localname": "Disclosure9.SalesAbstract", "nsuri": "http://taylordevices.com/20210531", "xbrltype": "stringItemType" }, "tayd_EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of total sales during a period to domestic customers.", "label": "Percentage of total sales during a period to domestic customers" } } }, "localname": "EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of total sales during a period to export customers.", "label": "Percentage of total sales during a period to export customers" } } }, "localname": "EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_EstimatedEarningsOnUncompletedContractsOrPrograms": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 2.0, "parentTag": "tayd_CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Estimated earnings component of costs and estimated earnings on uncompleted contracts", "label": "Estimated earnings" } } }, "localname": "EstimatedEarningsOnUncompletedContractsOrPrograms", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_GainLossOnPaycheckProtectionProgramLoanForgiveness": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Paycheck Protection Program Loan Forgiveness, CARES Act", "label": "Paycheck Protection Program loan forgiveness", "negatedLabel": "Paycheck Protection Program debt forgiveness" } } }, "localname": "GainLossOnPaycheckProtectionProgramLoanForgiveness", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "tayd_IndustrialMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Industrial Revenue" } } }, "localname": "IndustrialMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "tayd_InventoryValuationReserveNoncurrent": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Noncurrent inventory valuation allowance", "label": "Less allowance for obsolescence [Default Label]", "negatedLabel": "Less allowance for obsolescence" } } }, "localname": "InventoryValuationReserveNoncurrent", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_LongTermContractsDisclosureTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure - Costs and estimated earnings on uncompleted contracts table text block", "label": "Costs and estimated earnings on uncompleted contracts table" } } }, "localname": "LongTermContractsDisclosureTableTextBlock", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables" ], "xbrltype": "textBlockItemType" }, "tayd_LongTermContractsDisclosureTwoTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Costs and estimated earnings on uncompleted contracts two table", "label": "Costs and estimated earnings on uncompleted contracts two table" } } }, "localname": "LongTermContractsDisclosureTwoTableTextBlock", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables" ], "xbrltype": "textBlockItemType" }, "tayd_OtherIncomeEmployeeRetentionCredit": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 3.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Employee Retention Credit, CARES Act", "label": "Employee Retention Credit" } } }, "localname": "OtherIncomeEmployeeRetentionCredit", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "tayd_OtherReceivableEmployeeRetentionCredit": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 3.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Other Receivable Employee Retention Credit, CARES Act", "label": "Add Other receivables" } } }, "localname": "OtherReceivableEmployeeRetentionCredit", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of total value invoiced to customer on uncompleted contracts", "label": "Percentage of total value invoiced to customer" } } }, "localname": "PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "percentItemType" }, "tayd_QuantityOfUncompletedProjectsOrProgramsInProgress": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of Projects in progress", "label": "Number of Projects in progress" } } }, "localname": "QuantityOfUncompletedProjectsOrProgramsInProgress", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "pureItemType" }, "tayd_RevenueRecognitionOverTimePercentOfTotal": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percent of revenue recognized with sales contracts for which revenue is recognized over time.", "label": "Percent of revenue recognized with sales contracts for which revenue is recognized over time" } } }, "localname": "RevenueRecognitionOverTimePercentOfTotal", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_RevenueRecognitionSinglePerformanceObligationPercentOfTotal": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percent of revenue recognized with sales contracts containing a single performance obligation.", "label": "Percent of revenue recognized with sales contracts containing a single performance obligation" } } }, "localname": "RevenueRecognitionSinglePerformanceObligationPercentOfTotal", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer1": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Percentage of total sales to significant individual customer 1" } } }, "localname": "ScheduleOfRevenueByMajorCustomer1", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer2": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Percentage of total sales to significant individual customer 2" } } }, "localname": "ScheduleOfRevenueByMajorCustomer2", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Sales by major customer type" } } }, "localname": "ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesTables" ], "xbrltype": "textBlockItemType" }, "tayd_ScheduleOfRevenueByMajorCustomers": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Percentage of total sales to significant individual customers" } } }, "localname": "ScheduleOfRevenueByMajorCustomers", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomersTypesTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "9. Sales:" } } }, "localname": "ScheduleOfRevenueByMajorCustomersTypesTextBlock", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/Sales" ], "xbrltype": "textBlockItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eight [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Five [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Four [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Nine [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range One [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Seven [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Six [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Ten [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Three [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Two [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTwoMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Lower limit of exercise per share price range for outstanding and exercisable stock options.", "label": "Range of exercise prices, Minimum" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitOne", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Lower limit of exercise per share price range for outstanding and exercisable stock options.", "label": "Range of exercise prices, Minimum [Default Label]", "verboseLabel": "Range of exercise prices, Minimum" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Upper limit of exercise per share price range for outstanding and exercisable stock options.", "label": "Range of exercise prices, Maximum" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitOne", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Upper limit of exercise per share price range for outstanding and exercisable stock options.", "label": "Range of exercise prices, Maximum [Default Label]", "verboseLabel": "Range of exercise prices, Maximum" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "tayd_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2", "verboseLabel": "Weighted Average Exercise Price" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice2", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "sharesItemType" }, "tayd_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weightrd average number of years remaining to exercise outstanding and exercisable stock options.", "label": "Remaining number of years" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermOne", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "pureItemType" }, "tayd_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weightrd average number of years remaining to exercise outstanding and exercisable stock options.", "label": "Remaining number of years to exercise outstanding and exercisable stock options", "verboseLabel": "Remaining number of years" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "pureItemType" }, "tayd_StructuralSeismicWindMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Structural Seismic Wind Revenue" } } }, "localname": "StructuralSeismicWindMember", "nsuri": "http://taylordevices.com/20210531", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsAndOtherReceivablesNetCurrent": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance, receivable from customers, clients, or other third-parties, and receivables classified as other due within one year or the normal operating cycle, if longer.", "label": "Accounts and other receivables, net" } } }, "localname": "AccountsAndOtherReceivablesNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r41", "r284" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsPayableOtherCurrent": { "auth_ref": [ "r14", "r41" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligations incurred classified as other, payable within one year or the normal operating cycle, if longer.", "label": "Uncleared checks" } } }, "localname": "AccountsPayableOtherCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r150", "r151" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, before Allowance for Credit Loss, Current", "totalLabel": "Gross accounts receivable" } } }, "localname": "AccountsReceivableGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r4", "r25", "r150", "r151" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "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, after Allowance for Credit Loss, Current", "totalLabel": "Net accounts receivable" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r43" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of 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": "Other accrued expenses" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedSalesCommissionCurrent": { "auth_ref": [ "r13", "r14", "r43" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for sales commissions. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued commissions" } } }, "localname": "AccruedSalesCommissionCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r38", "r179" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 2.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": "Less accumulated depreciation" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalCashFlowElementsFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Financing activities:" } } }, "localname": "AdditionalCashFlowElementsFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Investing activities:" } } }, "localname": "AdditionalCashFlowElementsInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "auth_ref": [ "r26" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquityBeforeTreasuryStock", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", "label": "Paid-in capital" } } }, "localname": "AdditionalPaidInCapitalCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r98", "r99", "r100", "r223", "r224", "r225", "r264" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-in Capital [Member]" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income to net cash flows from operating activities:" } } }, "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.", "label": "APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "auth_ref": [ "r156", "r165", "r166", "r168" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable.", "label": "Less Allowance for doubtful accounts" } } }, "localname": "AllowanceForDoubtfulAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Assets": { "auth_ref": [ "r93", "r137", "r140", "r145", "r162", "r183", "r184", "r185", "r186", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r259", "r262", "r269", "r282", "r284", "r306", "r317" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "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 [Default Label]", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r7", "r9", "r57", "r93", "r162", "r183", "r184", "r185", "r186", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r259", "r262", "r269", "r282", "r284" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.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://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current assets:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_BillingsInExcessOfCostCurrent": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 }, "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails": { "order": 2.0, "parentTag": "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.", "label": "Billings in excess of costs and estimated earnings" } } }, "localname": "BillingsInExcessOfCostCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BuildingsAndImprovementsGross": { "auth_ref": [ "r12", "r178" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation of building structures held for productive use including addition, improvement, or renovation to the structure, including, but not limited to, interior masonry, interior flooring, electrical, and plumbing.", "label": "Buildings and improvements" } } }, "localname": "BuildingsAndImprovementsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r2", "r35", "r84" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.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", "periodEndLabel": "Cash and cash equivalents - ending", "periodStartLabel": "Cash and cash equivalents - beginning" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "auth_ref": [ "r16", "r85" ], "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:" } } }, "localname": "CashAndCashEquivalentsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r78", "r270" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "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", "totalLabel": "Net change in cash and cash equivalents" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashFlowSupplementalDisclosuresTextBlock": { "auth_ref": [ "r87" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "19. Cash Flows Information:" } } }, "localname": "CashFlowSupplementalDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/CashFlowsInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashSurrenderValueOfLifeInsurance": { "auth_ref": [ "r10", "r39" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity.", "label": "Cash value of life insurance, net" } } }, "localname": "CashSurrenderValueOfLifeInsurance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r98", "r99", "r264" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r21" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r21" ], "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" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r21" ], "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" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r21", "r284" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquityBeforeTreasuryStock", "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, $.025 par value, authorized 8,000,000 shares,\u00a0\u00a0\u00a0\u00a0issued 4,055,275 and 4,040,805 shares" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Retirement Benefits [Abstract]" } } }, "localname": "CompensationAndRetirementDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ConsolidationPolicyTextBlock": { "auth_ref": [ "r89", "r261" ], "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": "Principles of Consolidation:" } } }, "localname": "ConsolidationPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractReceivableRetainageDueOneYearOrLess": { "auth_ref": [ "r24", "r287" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableGrossCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount billed to customers under long-term contracts or programs that have been withheld because of retainage provisions in a contract to be collected 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": "Customers \u2013 retention" } } }, "localname": "ContractReceivableRetainageDueOneYearOrLess", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r69", "r303" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", "label": "Cost of goods sold" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms": { "auth_ref": [ "r22", "r23", "r24", "r294" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 7.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 }, "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails": { "order": 1.0, "parentTag": "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings.", "label": "Costs and estimated earnings in excess of billings" } } }, "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrPrograms", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear": { "auth_ref": [ "r48" ], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.", "label": "Costs in Excess of Billings, Current", "totalLabel": "Costs and estimated earnings not billed" } } }, "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentFederalTaxExpenseBenefit": { "auth_ref": [ "r94", "r244", "r251" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 1.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": "Federal" } } }, "localname": "CurrentFederalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentIncomeTaxExpenseBenefit": { "auth_ref": [ "r94", "r244", "r251", "r253" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "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 tax provision" } } }, "localname": "CurrentIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": { "auth_ref": [ "r94", "r244", "r251" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 2.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": "State" } } }, "localname": "CurrentStateAndLocalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Debt Disclosure [Abstract]" } } }, "localname": "DebtDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]" } } }, "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock": { "auth_ref": [ "r39" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs.", "label": "4. Costs and Estimated Earnings on Uncompleted Contracts:" } } }, "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts" ], "xbrltype": "textBlockItemType" }, "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": { "auth_ref": [ "r94", "r245", "r251" ], "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)", "verboseLabel": "Federal" } } }, "localname": "DeferredFederalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r82", "r94", "r245", "r251", "r252", "r253" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "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)", "verboseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred tax provision (benefit):" } } }, "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": { "auth_ref": [ "r94", "r245", "r251" ], "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)", "verboseLabel": "State" } } }, "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGross": { "auth_ref": [ "r238" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 1.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": "Total deferred tax assets" } } }, "localname": "DeferredTaxAssetsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails", "http://taylordevices.com/role/IncomeTaxesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGrossAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred tax assets:" } } }, "localname": "DeferredTaxAssetsGrossAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxAssetsInventory": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 2.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": "Tax inventory adjustment" } } }, "localname": "DeferredTaxAssetsInventory", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNet": { "auth_ref": [ "r239" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "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": "Net deferred tax assets" } } }, "localname": "DeferredTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNetCurrent": { "auth_ref": [ "r230", "r231", "r232", "r233", "r238" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards classified as current.", "label": "Deferred income taxes" } } }, "localname": "DeferredTaxAssetsNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": { "auth_ref": [ "r241", "r242", "r243" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.", "label": "State investment tax credit carryforwards" } } }, "localname": "DeferredTaxAssetsTaxCreditCarryforwards", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCompensatedAbsences": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "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 temporary differences from compensated absences (includes, but not limited to, sick and personal days).", "label": "Accrued vacation" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCompensatedAbsences", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 5.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 from compensation and benefits, classified as other.", "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other", "verboseLabel": "Accrued commissions" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "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 share-based compensation.", "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost", "verboseLabel": "Stock options issued for services" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 1.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": "Allowance for doubtful receivables" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "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 loss reserves other than estimated credit losses.", "label": "Allowance for obsolete inventory" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 6.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": "Warranty reserve" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred tax liabilities:" } } }, "localname": "DeferredTaxLiabilitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": { "auth_ref": [ "r242", "r243" ], "calculation": { "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.", "label": "Deferred Tax Liabilities, Property, Plant and Equipment", "negatedLabel": "Excess tax depreciation" } } }, "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ComponentsOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r82", "r177" ], "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 [Default Label]", "verboseLabel": "Depreciation" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r82", "r135" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.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" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r228" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "14. Stock Option Plans:" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Payment Arrangement [Abstract]" } } }, "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasicAndDiluted": { "auth_ref": [ "r116" ], "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": "Basic and diluted earnings per common share" } } }, "localname": "EarningsPerShareBasicAndDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r118", "r119", "r120", "r121" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "11. Earnings Per Common Share:" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r235" ], "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" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Tax effect of permanent differences:" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Equity [Abstract]" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueOfFinancialInstrumentsPolicy": { "auth_ref": [ "r266", "r267" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.", "label": "18. Fair Value of Financial Instruments:" } } }, "localname": "FairValueOfFinancialInstrumentsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/FairValueOfFinancialInstruments" ], "xbrltype": "textBlockItemType" }, "us-gaap_FurnitureAndFixturesGross": { "auth_ref": [ "r178" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 4.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Office furniture and equipment" } } }, "localname": "FurnitureAndFixturesGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r68", "r93", "r137", "r139", "r141", "r144", "r146", "r162", "r183", "r184", "r185", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r269" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.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", "totalLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r65", "r137", "r139", "r141", "r144", "r146", "r304", "r310", "r313", "r323" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Income before provision for income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxCreditsAndAdjustments": { "auth_ref": [ "r83" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "A credit or adjustment for government or taxing authority authorized decrease in taxes owed as a result of meeting certain tax policy conditions.", "label": "Total deferred tax provision" } } }, "localname": "IncomeTaxCreditsAndAdjustments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Abstract]" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r95", "r236", "r237", "r240", "r249", "r254", "r256", "r257", "r258" ], "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": "10. Income Taxes:" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r96", "r108", "r109", "r136", "r234", "r250", "r255", "r324" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Provision for income taxes (benefit)", "totalLabel": "Total tax provision" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails", "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current tax provision (benefit):" } } }, "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxReconciliationDeductionsQualifiedProductionActivities": { "auth_ref": [ "r235" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to deduction for qualified production activity.", "label": "Foreign-derived intangible income deduction" } } }, "localname": "IncomeTaxReconciliationDeductionsQualifiedProductionActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r235" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.", "label": "Computed tax provision at the expected statutory rate" } } }, "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpense": { "auth_ref": [ "r235" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount 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 nondeductible expenses.", "label": "PPP loan forgiveness" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther": { "auth_ref": [ "r235" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount 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 nondeductible expenses.", "label": "Other" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpenseOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationOtherAdjustments": { "auth_ref": [ "r235" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount 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": "Other permanent differences" } } }, "localname": "IncomeTaxReconciliationOtherAdjustments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": { "auth_ref": [ "r235" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount 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 state and local income tax expense (benefit).", "label": "State income tax - net of Federal tax benefit" } } }, "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": { "auth_ref": [ "r235" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount 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": "Research tax credits" } } }, "localname": "IncomeTaxReconciliationTaxCreditsResearch", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaid": { "auth_ref": [ "r79", "r86" ], "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.", "label": "Income taxes paid" } } }, "localname": "IncomeTaxesPaid", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SupplementalCashFlowInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables": { "auth_ref": [ "r81" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the amount due from customers for the credit sale of goods and services; includes accounts receivable and other types of receivables.", "label": "Accounts and other receivables" } } }, "localname": "IncreaseDecreaseInAccountsAndOtherReceivables", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayableTrade": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Change in recurring obligations of a business that arise from the acquisition of merchandise, materials, supplies and services used in the production and sale of goods and services.", "label": "Increase (Decrease) in Accounts Payable, Trade", "verboseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayableTrade", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the liability reflecting cash payments received before the related costs have been incurred.", "label": "Increase (Decrease) in Billing in Excess of Cost of Earnings", "verboseLabel": "Billings in excess of costs and estimated earnings" } } }, "localname": "IncreaseDecreaseInBillingInExcessOfCostOfEarnings", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "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", "verboseLabel": "Inventory" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherAccruedLiabilities": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in other expenses incurred but not yet paid.", "label": "Increase (Decrease) in Other Accrued Liabilities", "verboseLabel": "Other accrued expenses" } } }, "localname": "IncreaseDecreaseInOtherAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "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", "verboseLabel": "Accrued commissions" } } }, "localname": "IncreaseDecreaseInOtherOperatingLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidExpense": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.", "label": "Increase (Decrease) in Prepaid Expense", "verboseLabel": "Prepaid expenses" } } }, "localname": "IncreaseDecreaseInPrepaidExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidTaxes": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) of consideration paid in advance for income and other taxes that provide economic benefits in future periods.", "label": "Increase (Decrease) in Prepaid Taxes", "verboseLabel": "Prepaid income taxes" } } }, "localname": "IncreaseDecreaseInPrepaidTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInUnbilledReceivables": { "auth_ref": [ "r81" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period of the amount of revenue for work performed for which billing has not occurred, net of uncollectible accounts.", "label": "Increase (Decrease) in Unbilled Receivables", "verboseLabel": "Costs and estimated earnings in excess of billings" } } }, "localname": "IncreaseDecreaseInUnbilledReceivables", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r112", "r113", "r114", "r117" ], "calculation": { "http://taylordevices.com/role/EarningsPerCommonShareTableDetails": { "order": 2.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Common shares issuable under stock option plans" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_InterestIncomeExpenseNet": { "auth_ref": [ "r312" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net amount of operating interest income (expense).", "label": "Interest, net" } } }, "localname": "InterestIncomeExpenseNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestPaid": { "auth_ref": [ "r86" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash paid for interest, including, but not limited to, capitalized interest and payment to settle zero-coupon bond attributable to accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount; classified as operating and investing activities.", "label": "Interest paid" } } }, "localname": "InterestPaid", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SupplementalCashFlowInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Inventory Disclosure [Abstract]" } } }, "localname": "InventoryDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r173" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.", "label": "3. Inventory:" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/Inventory" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryFinishedGoods": { "auth_ref": [ "r50" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 3.0, "parentTag": "us-gaap_InventoryGross", "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": "Finished goods" } } }, "localname": "InventoryFinishedGoods", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryForLongTermContractsOrPrograms": { "auth_ref": [ "r54" ], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 1.0, "parentTag": "tayd_CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves, and progress payments, of inventory associated with long-term contracts, expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Costs incurred on uncompleted contracts" } } }, "localname": "InventoryForLongTermContractsOrPrograms", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryGross": { "auth_ref": [ "r53" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Gross 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": "Inventory, Gross", "totalLabel": "Gross inventory" } } }, "localname": "InventoryGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r3", "r53", "r284" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "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": "Net inventory" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNoncurrent": { "auth_ref": [ "r56" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle.", "label": "Maintenance and other inventory, net" } } }, "localname": "InventoryNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPartsAndComponentsNetOfReserves": { "auth_ref": [ "r53", "r172" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date for elements of machinery or equipment held for the purpose of replacing similar parts in the course of repair or maintenance.", "label": "Inventory" } } }, "localname": "InventoryPartsAndComponentsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPolicyTextBlock": { "auth_ref": [ "r15", "r55", "r90", "r122", "r169", "r171", "r173", "r297" ], "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:" } } }, "localname": "InventoryPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryRawMaterials": { "auth_ref": [ "r52" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Raw materials" } } }, "localname": "InventoryRawMaterials", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryValuationReserves": { "auth_ref": [ "r53", "r172" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of valuation reserve for inventory.", "label": "Less allowance for obsolescence" } } }, "localname": "InventoryValuationReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWorkInProcess": { "auth_ref": [ "r51" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryGross", "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": "Work-in-process" } } }, "localname": "InventoryWorkInProcess", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWriteDown": { "auth_ref": [ "r170" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "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": "Provision for inventory obsolescence", "verboseLabel": "Provision for potentially obsolete inventory" } } }, "localname": "InventoryWriteDown", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryDetailsNarrative", "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_Land": { "auth_ref": [ "r11", "r37" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depletion of real estate held for productive use, excluding land held for sale.", "label": "Land" } } }, "localname": "Land", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LandImprovements": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 6.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated deprecation and depletion of additions or improvements to real estate held for productive use. Examples include, but are not limited to, walkways, driveways, fences, and parking lots.", "label": "Land improvements" } } }, "localname": "LandImprovements", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LegalMattersAndContingenciesTextBlock": { "auth_ref": [ "r182" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for legal proceedings, legal contingencies, litigation, regulatory and environmental matters and other contingencies.", "label": "8. Legal Proceedings:" } } }, "localname": "LegalMattersAndContingenciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/LegalProceedings" ], "xbrltype": "textBlockItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r30", "r93", "r162", "r269", "r284", "r307", "r319" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "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://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Stockholders' Equity" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r45", "r93", "r162", "r183", "r184", "r185", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r260", "r262", "r263", "r269", "r282", "r283", "r284" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "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://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current liabilities:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock": { "auth_ref": [ "r163" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for corporate (COLI) or bank (BOLI) owned life insurance including the amount of cash surrender value that could be received as of the date of the statement of financial position, any restrictions on the company's ability to obtain the value of the life insurance policy on surrender, or any other additional information desired to be disclosed.", "label": "Cash Value of Life Insurance:" } } }, "localname": "LifeInsuranceCorporateOrBankOwnedTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": { "auth_ref": [ "r42" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility.", "label": "Current borrowing capacity" } } }, "localname": "LineOfCreditFacilityCurrentBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityFairValueOfAmountOutstanding": { "auth_ref": [ "r268" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value of the amount outstanding under the credit facility.", "label": "Outstanding balance on line of credit" } } }, "localname": "LineOfCreditFacilityFairValueOfAmountOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "auth_ref": [ "r159" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.", "label": "2. Accounts and Other Receivables:" } } }, "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsAndOtherReceivables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LongTermContractsOrProgramsDisclosureTextBlock": { "auth_ref": [ "r22", "r58", "r200", "r285", "r286", "r288", "r289", "r290", "r291", "r292", "r293", "r295", "r296", "r298", "r299", "r300", "r302" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-term contracts or programs.", "label": "Costs and estimated earnings on uncompleted contracts components table" } } }, "localname": "LongTermContractsOrProgramsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_MachineryAndEquipmentGross": { "auth_ref": [ "r12", "r178" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 3.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation of tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.", "label": "Machinery and equipment" } } }, "localname": "MachineryAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MarketableSecuritiesPolicy": { "auth_ref": [ "r314" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for investment classified as marketable security.", "label": "Short-term Investments:" } } }, "localname": "MarketableSecuritiesPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NatureOfOperations": { "auth_ref": [ "r124", "r132" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.", "label": "Nature of Operations:" } } }, "localname": "NatureOfOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Changes in other current assets and liabilities:" } } }, "localname": "NetCashProvidedByUsedInContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r78" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r78" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r78", "r80", "r83" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r1", "r59", "r60", "r63", "r66", "r83", "r93", "r101", "r103", "r104", "r105", "r106", "r108", "r109", "r115", "r137", "r139", "r141", "r144", "r146", "r162", "r183", "r184", "r185", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r265", "r269", "r311", "r322" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://taylordevices.com/role/StatementsOfIncome": { "order": null, "parentTag": null, "root": true, "weight": null } }, "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", "totalLabel": "Net income", "verboseLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows", "http://taylordevices.com/role/StatementsOfIncome", "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "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 Standards:" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r71" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.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)", "totalLabel": "Total other income" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r137", "r139", "r141", "r144", "r146" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "Operating income (loss)" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsDisclosureTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for other assets. This disclosure includes other current assets and other noncurrent assets.", "label": "5. Maintenance and Other Inventory:" } } }, "localname": "OtherAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventory" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherInventoryNoncurrent": { "auth_ref": [ "r56" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle (such as inventory related to long-term contracts or program rights).", "label": "Maintenance and other inventory" } } }, "localname": "OtherInventoryNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesDisclosureTextBlock": { "auth_ref": [ "r44" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for other liabilities.", "label": "Sales Taxes:" } } }, "localname": "OtherLiabilitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r72" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 4.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Miscellaneous" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherSellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r70" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of selling, general and administrative expense classified as other.", "label": "Shipping and handling costs" } } }, "localname": "OtherSellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForProceedsFromLifeInsurancePolicies": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net cash outflow or inflow for net proceeds and payments derived from carrying life insurance policies for which the entity is the beneficiary.", "label": "Payments for (Proceeds from) Life Insurance Policies", "negatedLabel": "Increase in cash value of life insurance" } } }, "localname": "PaymentsForProceedsFromLifeInsurancePolicies", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireAvailableForSaleSecuritiesDebt": { "auth_ref": [ "r73", "r74", "r161" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Payments to Acquire Debt Securities, Available-for-sale", "negatedLabel": "Increase in short-term investments" } } }, "localname": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r75" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of 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": "Acquisition of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PensionExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost (reversal of cost) for pension benefits. Excludes other postretirement benefits.", "label": "Retirement plan expense" } } }, "localname": "PensionExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/RetirementPlanDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_PolicyholderAccountBalanceLineItems": { "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": "Policyholder Account Balance [Line Items]" } } }, "localname": "PolicyholderAccountBalanceLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r20" ], "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 shares authorized" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PreferredStockDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockTextBlock": { "auth_ref": [ "r199" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for terms, amounts, nature of changes, rights and privileges, dividends, and other matters related to preferred stock.", "label": "15. Preferred Stock:" } } }, "localname": "PreferredStockTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PreferredStock" ], "xbrltype": "textBlockItemType" }, "us-gaap_PrepaidExpenseCurrent": { "auth_ref": [ "r5", "r8", "r175", "r176" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "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 expenses" } } }, "localname": "PrepaidExpenseCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidTaxes": { "auth_ref": [ "r6", "r8", "r174", "r176" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 6.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 income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid income taxes" } } }, "localname": "PrepaidTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromBankDebt": { "auth_ref": [ "r77" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from bank borrowing during the year.", "label": "Proceeds from Bank Debt", "verboseLabel": "Short-term borrowings" } } }, "localname": "ProceedsFromBankDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative", "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "auth_ref": [ "r76" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the additional capital contribution to the entity.", "label": "Proceeds from issuance of common stock" } } }, "localname": "ProceedsFromIssuanceOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans": { "auth_ref": [ "r76", "r222" ], "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 exercise of options" } } }, "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Abstract]" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r181", "r331", "r332", "r333" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "6. Property and Equipment:" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipment" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r37", "r178" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Gross", "totalLabel": "Gross property and equipment" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r17", "r18", "r180", "r284", "r315", "r320" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "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 and equipment, net", "totalLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentOther": { "auth_ref": [ "r180" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 5.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of other physical assets used in the normal conduct of business to produce goods and services and not intended for resale.", "label": "Autos and trucks" } } }, "localname": "PropertyPlantAndEquipmentOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "auth_ref": [ "r36", "r180", "r331", "r332" ], "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 and Equipment:" } } }, "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r17", "r180" ], "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 and equipment table" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r67", "r167" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Bad debt expense" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Receivables [Abstract]" } } }, "localname": "ReceivablesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ReceivablesFromCustomers": { "auth_ref": [ "r305" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableGrossCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount due from customers for fees and charges arising from transactions related to the entity's brokerage activities and operations.", "label": "Customers" } } }, "localname": "ReceivablesFromCustomers", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RegulatoryIncomeTaxesPolicy": { "auth_ref": [ "r334", "r335" ], "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": "Income Taxes:" } } }, "localname": "RegulatoryIncomeTaxesPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RelatedPartyTransactionsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Related Party Transactions [Abstract]" } } }, "localname": "RelatedPartyTransactionsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "auth_ref": [ "r277", "r278", "r279", "r280", "r281" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.", "label": "12. Related Party Transactions:" } } }, "localname": "RelatedPartyTransactionsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/RelatedPartyTransactions" ], "xbrltype": "textBlockItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r229", "r301", "r336" ], "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 costs" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpensePolicy": { "auth_ref": [ "r229" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for costs it has 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.", "label": "Research and Development Costs:" } } }, "localname": "ResearchAndDevelopmentExpensePolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r27", "r195", "r226", "r284", "r318", "r329", "r330" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquityBeforeTreasuryStock", "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" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r0", "r98", "r99", "r100", "r102", "r107", "r109", "r164", "r223", "r224", "r225", "r247", "r248", "r264", "r326", "r328" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueRecognitionPolicyTextBlock": { "auth_ref": [ "r91", "r92" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.", "label": "Revenue Recognition:" } } }, "localname": "RevenueRecognitionPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_Revenues": { "auth_ref": [ "r64", "r93", "r133", "r134", "r138", "r142", "r143", "r147", "r148", "r149", "r162", "r183", "r184", "r185", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r269", "r313" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.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": "Sales, net" } } }, "localname": "Revenues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_RisksAndUncertaintiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Risks and Uncertainties [Abstract]" } } }, "localname": "RisksAndUncertaintiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "auth_ref": [ "r49" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.", "label": "Accounts receivable table" } } }, "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/AccountsAndOtherReceivablesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented.", "label": "Supplemental cash flow information" } } }, "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/CashFlowsInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "auth_ref": [ "r246" ], "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": "Income Taxes Table" } } }, "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCostsOfRetirementPlansTableTextBlock": { "auth_ref": [ "r203" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the costs related to the various types of retirement plans including defined benefit pension plan cost, defined contribution plan cost, other postretirement benefit plan cost, and net periodic benefit cost.", "label": "17. Retirement Plan:" } } }, "localname": "ScheduleOfCostsOfRetirementPlansTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/RetirementPlan" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [ "r239" ], "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": "Components of Deferred Tax Assets and Liabilities" } } }, "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r117" ], "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": "Earnings per common share table" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "auth_ref": [ "r235" ], "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": "Reconciliation of income tax statutory rate to effective rate" } } }, "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r15", "r31", "r32", "r33" ], "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": "Inventory table" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryNoncurrentTableTextBlock": { "auth_ref": [ "r15", "r31", "r32", "r33", "r34" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle including inventoried costs relating to long-term contracts or programs.", "label": "Maintenance and other inventory table" } } }, "localname": "ScheduleOfInventoryNoncurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfLineOfCreditFacilitiesTextBlock": { "auth_ref": [ "r42" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of short-term or long-term contractual arrangements with lenders, including letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line.", "label": "7. Short-Term Borrowings:" } } }, "localname": "ScheduleOfLineOfCreditFacilitiesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowings" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfOtherShareBasedCompensationActivityTableTextBlock": { "auth_ref": [ "r212" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of activity for outstanding award under share-based payment arrangement excluding share and unit options and nonvested award.", "label": "Share-based Payment Arrangement, Outstanding Award, Activity, Excluding Option [Table Text Block]", "verboseLabel": "Stock option plans - Stock options outstanding and exercisable" } } }, "localname": "ScheduleOfOtherShareBasedCompensationActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock": { "auth_ref": [ "r220" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of employee stock purchase plan activity.", "label": "13. Employee Stock Purchase Plan:" } } }, "localname": "ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EmployeeStockPurchasePlan" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Details comprising a table providing supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms.", "label": "Stock option plans - Stock options outstanding and exercisable" } } }, "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the change in stock options.", "label": "Stock options roll foward" } } }, "localname": "ScheduleOfStockOptionsRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r70" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, general and administrative expenses" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r81" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share based compensation expense" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r218" ], "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": "Expected dividend yield" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r217" ], "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": "Expected volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r219" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Risk-free interest rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r205" ], "lang": { "en-us": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "Common shares reserved for stock options" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r221" ], "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": "Shares available" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": { "auth_ref": [ "r211" ], "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": "Stock options expired" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Options granted" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r214" ], "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" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock": { "auth_ref": [ "r214" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the weighted-average grant-date fair value of equity options or other equity instruments granted during the year.", "label": "Stock option plans table" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r221" ], "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": "Intrinsic value of options outstanding" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r208", "r221" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "Stock options outstanding", "totalLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number", "verboseLabel": "Number of Options" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails", "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r207" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "Weighted average exercise price of options outstanding", "verboseLabel": "Weighted Average Exercise Price" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails", "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "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": "Weighted average exercise price of options exercised" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.", "label": "Weighted average exercise price of options expired" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "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": "Weighted average exercise price of options granted" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r204", "r206" ], "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": "Stock-Based Compensation:" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": { "auth_ref": [ "r215" ], "lang": { "en-us": { "role": { "documentation": "Information by range of option prices pertaining to options granted.", "label": "Exercise Price Range [Axis]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": { "auth_ref": [ "r220" ], "lang": { "en-us": { "role": { "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices." } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems": { "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 Payment Arrangement, Option, Exercise Price Range [Line Items]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions": { "auth_ref": [ "r213" ], "lang": { "en-us": { "role": { "documentation": "The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied.", "label": "Number of Options" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Price of a single share of a number of saleable stocks of a company.", "label": "Price per share of common" } } }, "localname": "SharePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r216", "r227" ], "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": "Expected life in years" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1": { "auth_ref": [ "r209" ], "lang": { "en-us": { "role": { "documentation": "Weighted average exercise price as of the balance sheet date for those equity-based payment arrangements exercisable and outstanding.", "label": "Weighted Average Exercise Price" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShippingAndHandlingCostPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs.", "label": "Shipping and Handling Costs:" } } }, "localname": "ShippingAndHandlingCostPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShortTermBankLoansAndNotesPayable": { "auth_ref": [ "r40", "r321" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of borrowings from a bank classified as other, maturing within one year or operating cycle, if longer.", "label": "Short-term borrowings" } } }, "localname": "ShortTermBankLoansAndNotesPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShortTermInvestments": { "auth_ref": [ "r19", "r308", "r309", "r316" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.", "label": "Short-term investments" } } }, "localname": "ShortTermInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r88", "r97" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.", "label": "1. Summary of Significant Accounting Policies:" } } }, "localname": "SignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r0", "r47", "r61", "r62", "r63", "r98", "r99", "r100", "r102", "r107", "r109", "r123", "r164", "r194", "r195", "r223", "r224", "r225", "r247", "r248", "r264", "r271", "r272", "r273", "r274", "r275", "r276", "r326", "r327", "r328", "r356" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "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]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r98", "r99", "r100", "r123", "r303" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails", "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "auth_ref": [ "r20", "r21", "r194", "r195" ], "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" } } }, "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EmployeeStockPurchasePlanDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r20", "r21", "r194", "r195", "r210" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Stock options exercised" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of shares issued during the period to an employee benefit plan, such as a defined contribution or defined benefit plan.", "label": "Stock Issued During Period, Value, Employee Benefit Plan" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeBenefitPlan", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "auth_ref": [ "r20", "r21", "r194", "r195" ], "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" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockOptionPlanExpense": { "auth_ref": [ "r82" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for option under share-based payment arrangement.", "label": "Stock options issued for services" } } }, "localname": "StockOptionPlanExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r21", "r28", "r29", "r93", "r158", "r162", "r269", "r284" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "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": "Stockholders' Equity Attributable to Parent, Ending Balance", "periodStartLabel": "Stockholders' Equity Attributable to Parent, Beginning Balance", "totalLabel": "Total stockholders' equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity:" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityBeforeTreasuryStock": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total amount of stockholders' equity (deficit) items including stock value, paid in capital, retained earnings and including equity attributable to noncontrolling interests and before deducting the carrying value of treasury stock.", "label": "Stockholders' Equity before Treasury Stock", "totalLabel": "Stockholders\u2019 equity before treasury stock" } } }, "localname": "StockholdersEquityBeforeTreasuryStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_SubsequentEventsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for reporting subsequent events.", "label": "Subsequent Events:" } } }, "localname": "SubsequentEventsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SupplementalCashFlowElementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Elements [Abstract]" } } }, "localname": "SupplementalCashFlowElementsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_TaxCreditCarryforwardExpirationDate": { "auth_ref": [ "r241" ], "lang": { "en-us": { "role": { "documentation": "Expiration date of the tax credit carryforward, in YYYY-MM-DD format.", "label": "Tax Credit Carryforward, Expiration Date" } } }, "localname": "TaxCreditCarryforwardExpirationDate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesDetailsNarrative" ], "xbrltype": "dateItemType" }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "auth_ref": [ "r152", "r153", "r154", "r155", "r157", "r160" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for accounts receivable.", "label": "Accounts and Other Receivables:" } } }, "localname": "TradeAndOtherAccountsReceivablePolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_TreasuryStockMember": { "auth_ref": [ "r46", "r196" ], "lang": { "en-us": { "role": { "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Treasury Stock [Member]" } } }, "localname": "TreasuryStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockShares": { "auth_ref": [ "r46", "r196" ], "lang": { "en-us": { "role": { "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.", "label": "Treasury Stock, Shares", "verboseLabel": "Treasury Stock" } } }, "localname": "TreasuryStockShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical", "http://taylordevices.com/role/TreasuryStockDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockTextBlock": { "auth_ref": [ "r198" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock.", "label": "16. Treasury Stock:" } } }, "localname": "TreasuryStockTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/TreasuryStock" ], "xbrltype": "textBlockItemType" }, "us-gaap_TreasuryStockValue": { "auth_ref": [ "r46", "r196", "r197" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", "label": "Treasury Stock, Value", "negatedLabel": "Treasury stock \u2013 558,834 and 553,934 shares at cost", "periodEndLabel": "Treasury Stock, Value, Ending Balance", "periodStartLabel": "Treasury Stock, Value, Beginning Balance" } } }, "localname": "TreasuryStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/StatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnusualRisksAndUncertaintiesTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the nature of the unusual risk or uncertainty, if estimable, such as the threat of expropriation of its assets by a foreign government, rapid technological obsolescence in the industry, risk of natural disaster from earthquake or weather events, and availability of or continuation of a labor force at a reasonable cost.", "label": "20. Risks and Uncertainties:" } } }, "localname": "UnusualRisksAndUncertaintiesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/RisksAndUncertainties" ], "xbrltype": "textBlockItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r125", "r126", "r127", "r128", "r129", "r130", "r131" ], "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:" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r111", "r117" ], "calculation": { "http://taylordevices.com/role/EarningsPerCommonShareTableDetails": { "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", "totalLabel": "Average common shares outstanding assuming dilution" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r110", "r117" ], "calculation": { "http://taylordevices.com/role/EarningsPerCommonShareTableDetails": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Average common shares outstanding" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTableDetails" ], "xbrltype": "sharesItemType" } }, "unitCount": 4 } }, "std_ref": { "r0": { "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" }, "r1": { "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" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765" }, "r100": { "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" }, "r101": { "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" }, "r102": { "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" }, "r103": { "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" }, "r104": { "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" }, "r105": { "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" }, "r106": { "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" }, "r107": { "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" }, "r108": { "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" }, "r109": { "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" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765" }, "r110": { "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" }, "r111": { "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" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1707-109256" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1757-109256" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1500-109256" }, "r115": { "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" }, "r116": { "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" }, "r117": { "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" }, "r118": { "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" }, "r119": { "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" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765" }, "r120": { "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" }, "r121": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r122": { "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" }, "r123": { "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" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r125": { "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" }, "r126": { "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" }, "r127": { "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" }, "r128": { "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" }, "r129": { "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" }, "r13": { "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" }, "r130": { "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" }, "r131": { "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" }, "r132": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r133": { "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" }, "r134": { "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" }, "r135": { "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" }, "r136": { "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" }, "r137": { "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" }, "r138": { "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" }, "r139": { "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" }, "r14": { "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" }, "r140": { "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" }, "r141": { "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" }, "r142": { "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" }, "r143": { "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" }, "r144": { "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" }, "r145": { "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" }, "r146": { "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" }, "r147": { "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" }, "r148": { "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" }, "r149": { "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" }, "r15": { "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" }, "r150": { "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" }, "r151": { "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" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e4975-111524" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5212-111524" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524" }, "r156": { "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" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5093-111524" }, "r158": { "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" }, "r159": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/subtopic&trid=2196772" }, "r16": { "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" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534" }, "r161": { "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" }, "r162": { "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" }, "r163": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "325", "URI": "http://asc.fasb.org/topic&trid=2197064" }, "r164": { "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" }, "r165": { "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" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r167": { "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" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r169": { "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" }, "r17": { "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" }, "r170": { "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" }, "r171": { "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" }, "r172": { "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" }, "r173": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "http://asc.fasb.org/topic&trid=2126998" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123349782&loc=d3e5879-108316" }, "r175": { "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" }, "r176": { "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" }, "r177": { "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" }, "r178": { "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" }, "r179": { "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" }, "r18": { "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" }, "r180": { "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" }, "r181": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "http://asc.fasb.org/topic&trid=2155823" }, "r182": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r183": { "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" }, "r184": { "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" }, "r185": { "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" }, "r186": { "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" }, "r187": { "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" }, "r188": { "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" }, "r189": { "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" }, "r19": { "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" }, "r190": { "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" }, "r191": { "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" }, "r192": { "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" }, "r193": { "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" }, "r194": { "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" }, "r195": { "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" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656" }, "r198": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/subtopic&trid=2208821" }, "r199": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r2": { "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" }, "r20": { "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" }, "r200": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "35", "Topic": "605", "URI": "http://asc.fasb.org/subtopic&trid=2197326" }, "r201": { "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" }, "r202": { "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" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r204": { "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" }, "r205": { "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" }, "r206": { "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" }, "r207": { "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" }, "r208": { "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" }, "r209": { "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" }, "r21": { "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" }, "r210": { "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" }, "r211": { "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" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r214": { "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" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r216": { "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" }, "r217": { "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" }, "r218": { "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" }, "r219": { "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" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(c)(2))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "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" }, "r221": { "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" }, "r222": { "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" }, "r223": { "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" }, "r224": { "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" }, "r225": { "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" }, "r226": { "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" }, "r227": { "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" }, "r228": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "http://asc.fasb.org/topic&trid=2228938" }, "r229": { "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" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(c)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "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" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31928-109318" }, "r232": { "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" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31958-109318" }, "r234": { "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" }, "r235": { "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" }, "r236": { "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" }, "r237": { "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" }, "r238": { "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" }, "r239": { "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" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(c)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "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" }, "r241": { "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" }, "r242": { "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" }, "r243": { "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" }, "r244": { "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" }, "r245": { "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" }, "r246": { "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" }, "r247": { "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" }, "r248": { "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" }, "r249": { "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" }, "r25": { "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" }, "r250": { "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" }, "r251": { "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" }, "r252": { "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" }, "r253": { "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" }, "r254": { "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" }, "r255": { "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" }, "r256": { "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" }, "r257": { "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" }, "r258": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "http://asc.fasb.org/topic&trid=2144680" }, "r259": { "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" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "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" }, "r261": { "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" }, "r262": { "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" }, "r263": { "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" }, "r264": { "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" }, "r265": { "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" }, "r266": { "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" }, "r267": { "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" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611" }, "r269": { "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" }, "r27": { "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" }, "r270": { "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" }, "r271": { "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" }, "r272": { "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" }, "r273": { "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" }, "r274": { "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" }, "r275": { "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" }, "r276": { "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" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r279": { "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" }, "r28": { "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" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864" }, "r281": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "850", "URI": "http://asc.fasb.org/topic&trid=2122745" }, "r282": { "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" }, "r283": { "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" }, "r284": { "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" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991585-234733" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991590-234733" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991598-234733" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=6471471&loc=d3e48698-109348" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "275", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123375686&loc=d3e54658-109401" }, "r29": { "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" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "275", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123375686&loc=d3e54672-109401" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "275", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123375686&loc=d3e54681-109401" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "275", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123375686&loc=d3e54708-109401" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "275", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123375686&loc=d3e54711-109401" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55302-109406" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=84167097&loc=d3e55538-109407" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=84167097&loc=d3e55562-109407" }, "r297": { "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" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "405", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123377354&loc=d3e56288-109415" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "405", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123374443&loc=d3e56414-109416" }, "r3": { "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" }, "r30": { "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" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "405", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123374443&loc=d3e56417-109416" }, "r301": { "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" }, "r302": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "912", "URI": "http://asc.fasb.org/topic&trid=2145070" }, "r303": { "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" }, "r304": { "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" }, "r305": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "310", "Topic": "940", "URI": "http://asc.fasb.org/subtopic&trid=2176284" }, "r306": { "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" }, "r307": { "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" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(4))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r31": { "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" }, "r310": { "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" }, "r311": { "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" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04.10)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r313": { "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" }, "r314": { "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" }, "r315": { "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" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(1)(g))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r317": { "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" }, "r318": { "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" }, "r319": { "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" }, "r32": { "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" }, "r320": { "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" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.16)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r322": { "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" }, "r323": { "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" }, "r324": { "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" }, "r325": { "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" }, "r326": { "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" }, "r327": { "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" }, "r328": { "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" }, "r329": { "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" }, "r33": { "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" }, "r330": { "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" }, "r331": { "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" }, "r332": { "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" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916" }, "r334": { "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" }, "r335": { "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" }, "r336": { "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" }, "r337": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r338": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-23" }, "r339": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(d))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "g" }, "r341": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12, 13, 15d" }, "r342": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "13e", "Subsection": "4c" }, "r343": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "14d", "Subsection": "2b" }, "r344": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "15", "Subsection": "d" }, "r345": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "14a", "Subsection": "12" }, "r346": { "Name": "Form 10-K", "Number": "249", "Publisher": "SEC", "Section": "310" }, "r347": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a" }, "r348": { "Name": "Form 20-F", "Number": "249", "Publisher": "SEC", "Section": "220", "Subsection": "f" }, "r349": { "Name": "Form 40-F", "Number": "249", "Publisher": "SEC", "Section": "240", "Subsection": "f" }, "r35": { "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" }, "r350": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r351": { "Name": "Regulation 12B", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r352": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r353": { "Name": "Securities Act", "Number": "230", "Publisher": "SEC", "Section": "425" }, "r354": { "Name": "Securities Act", "Number": "7A", "Publisher": "SEC", "Section": "B", "Subsection": "2" }, "r355": { "Name": "Securities Act", "Number": "Section", "Publisher": "SEC", "Section": "12" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848" }, "r36": { "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" }, "r37": { "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" }, "r38": { "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" }, "r39": { "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" }, "r4": { "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" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r41": { "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" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r43": { "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" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20,24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r45": { "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" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29,30)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r47": { "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" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3(c)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r5": { "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" }, "r50": { "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" }, "r51": { "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" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r53": { "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" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a),(d))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r55": { "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" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(d))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r57": { "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" }, "r58": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "210", "URI": "http://asc.fasb.org/topic&trid=2122208" }, "r59": { "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" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r60": { "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" }, "r61": { "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" }, "r62": { "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" }, "r63": { "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" }, "r64": { "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" }, "r65": { "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" }, "r66": { "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" }, "r67": { "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" }, "r68": { "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" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r7": { "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" }, "r70": { "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" }, "r71": { "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" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r73": { "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" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r75": { "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" }, "r76": { "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" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r78": { "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" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r8": { "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" }, "r80": { "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" }, "r81": { "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" }, "r82": { "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" }, "r83": { "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" }, "r84": { "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" }, "r85": { "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" }, "r86": { "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" }, "r87": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "230", "URI": "http://asc.fasb.org/topic&trid=2134446" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18726-107790" }, "r89": { "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" }, "r9": { "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" }, "r90": { "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" }, "r91": { "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" }, "r92": { "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" }, "r93": { "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" }, "r94": { "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" }, "r95": { "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" }, "r96": { "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" }, "r97": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r98": { "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" }, "r99": { "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" } }, "version": "2.1" } ZIP 83 0000096536-21-000015-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0000096536-21-000015-xbrl.zip M4$L#!!0 ( 6#&U,J2:.Z?P< $@? ; 8V5O,S R8V5R=&EF:6-A M=&EO;C(P,C$N:'1MW5EA;^)($OV.Q']H(=TJD4P2R.1V+V&1"#@;]K(A L]I MYV-CMZ$OQNUQVQ#NU]^K;CL0 C?,#!/M)9%"L+NK7U>]>E5MMVZ]/^[:U4KK MUNWT\,GHI^7UO3NWW3JUG[A[6MQN70]ZG]C(^W3G_EH+59Q=LL99DC%/SH1F M]V+!AFK&8\=><-A(I#*L82*F/GSMO"LVX^E$QI?LS/Z>7,CXBF7B*:OS2$YP MX]^YSF2X+"[*.!!DNFY&UMJMZ[;[-)5CF;'SQI$\;IU>8U,/WP]G*XA:^Z=X MK).K@ZQ@P)?V?@AJ'ZX2*=:Y&=Q[ZU;K(9_):'GYI: "8-<=>OV;?K?C]0?W M%B=9HUO5RN"&=6_[[@US_W2['[W^OUPVN,%@=_BC=W3=?O@X''WL8%_>@ T_ MWKFL<KWUW!(3=V\[];VZUTNEZ=+_QC_,/SH^' MV1FQ3F_PX+D]MHX8R,BA[/RL^0RV,[SNW+NC^N#/._?3,\[FV5GS8# /2N!] M\K1(T[XQHK+IDOU^PD8J>50.O)32#)9->7;Y?Y*TA4HU=\E4K=TX87TVY7/! M4C&78B$";%!JQN,XYQ$N)BK-F(JKE1N5SK!Z_9],AQ.))-PKI$^ 8AV4V 3078YQS3 C9>KCOB75+@_']00+!0QG QPE6M MK'SJ(/X8C_OI:@!B%"*'>"9A2,9^E 8038IA MLYXV@'RNIRR,U,+<) NIF$B=I1PK<;IH M@0.FLQ9L7:)Y!?==QOO#"?->N.:G5'_.U94N EH4 B1(M:+"$ *8&J_U&4^% M"1#\+<>1(#\R 5:,(ZFGE% T; 9Y((F@[X'4?J1TCGDD'*F*;*"25/DBP&7- MCA"70"#2UOGNDS_E\42P#E)RF$<8@4ZBWK@X$L?5"LUM7 3VZ[$Q):FVQY8B MM "CQ%UCC@TD@=E[I=!:+A8*L1!M]"6=+!8J+(>IE6_,D9V-?:U-#5M/:%R$ MGXR6?CF*R$IXR.>YWG\.">Y8("+%4E;"59[" /)R+C6E.XT2L;%#CRA-?;K]B)O:(*)D EM6XFQRK/=$'8LAY1?Z:'M-JP- MZI3"+_>6;%PV88;ZPOH"@*[(^CL*= "!L"Y\'0HZ5A1EV=RQ*;G9IWR%+%#- M4+Z?I^3PE3YOZWYF2F>X3D\+8$O[,/0YA[S#]-$N)"&X@S/$QG +G=I187ZN9Q1IANNB<"(H/%((5!+G'P>150;G?*$^/H6#*5ZN?Z8B[ MY@R'Z4P86FW9TUBA>M&]0 *<,7 $-D%W- D;/JEI*G- ?,XEL!N^Y[%OSE'' M[[&=[>"$28V!1'SI*$BG %\*!*0H#65:52L+P1])[&UA-G)O>@KS(*,\;7Y5 MG(O^SYZ=MJ0T#S!1BV<%V*EZ92>".0@N&@;'5C@-E^A\!G?(_PBSG4),MY[, M#YGM?Y6*@I:S@\(1IL@2!_X6)K41,?.\IXBM8U2W6I'Q7$5S0=H;\TGQX"HM MY$#,DD@M!>XNILI* ']!'42Z+$W?);HG.]W2// SWZ9]YKL1#*]S?>>RKGMW M-WKH=/OWO_U:.ZN9[P^=7J_\7B!;R"";4L3._G8%C4G16]=]%44\T>*2E?_5 MS-NLEC6"['WS&YD>N'59H+$O8CKY!%%@S9\=UCQK-JR_#XMV M%_4VJ?Z]-6+BO*%%VT=?X;?1KH?L>\R+MMB\F;$WI $LKWY#HC4X+57 M#\'3/1?O3J4(F?LD_)S.5FQ@^ZYG1J_">FIDRBK6*;T)MZ_&Z0WZ?P%02P,$ M% @ !8,;4T]<*O!M! 710 !L !C96\Y,#9C97)T:69I8V%T:6]N M,C R,2YH=&WM6&UOXC@0_H[$?Q@AW8I*O'/L=B&+%"!LN6,+@O2T_6@2!WP; M[-1QVN9^_8WCT+)]N]XN[4JK18@0QYYYYO$S8SO6B?MIVB\6K!/''N$5],=R M)^[4Z5MU<\6G]?RQ-9B-SF'IGD^=#Z5 <-6%9B-2X+(MC>&47L%"; FOF(8* M+*ED00D'XM#Y_QW7@RV1:\:[T.B!HM>J2D*VQMN_DUBQ("WUW_!5'/6L^OS% M/%B#OG.]82NFH-TJLR.K/N@_YF\E0O][G'J4*RHSG[O ?CG[Y>P!9^/9J;MO MNAJ0+0O3[G_9S?K&[!]JDB.#/706[F0\&=KN9'9JT&OS&,!L#,.3B3,&Y[,S M/',G?SDP&V-/9_$"&6=BR]L8]ZFVUZAU&,]0SL\6RS,;HW9GT#R&L]JR-JS! MTAEJU,5"L]UI5,!>@CV:S5UG!/O]\U[POO$6GIJ>ET./3+HG#BSMQ< ^=9;5 MV>>I%>#GK04&PCPE/3< 2"PUC(+>*N_HFB MEIGA@,4>"2&E1 )%'#Y\(BFTFQ5H-5I-4 )6NE.(#S(P2^HEDBE&XV*!,!N@(/2MV26$6!!BOU SL15E!.4E-:@6B1,8)X4JC1[P* M,9F9U%K.1RV)7!%.X^KL.J3(JNUEE&I553!73/]=PA@;8/)%;8CJ/JJ)UH$U MT3*:^#%*+#>/P$6RS"1!D(1ABMK<1F$V_S?JE/0B89)N<6RL6?R*]&:[3(ZT M()J=LG]TP_^-CFXEE,]!\WW[]QZ@N'Z^U"ZW#*&,8_YM2:8JS'5%&*=^LUS!KK\WA#RK*"E@, M7. %%ZVL4.I"@#_8'"LD3:N_6,!JZ5/\[W]5.C636)4B$=/XF1GP\_#ZU#)_ M>*=/.W#MP=2!H3.=+N?V<'+Z\4.I4S=&8?:^=K%%; MT'IG]@V&[\.BO9U)/&*/'B7T>(]/9/X.FRNAE-AVS*0]KM;U>U@#T+B?8$FHHU%R/SGXW\^)X>,U$Q9/:[?V]3M$X _BV_+H9>( M?B>SAV;FM?V]6EVX4[&U[;OE5!?3^[-XB#1_IO-'C@$'PO!XH;F59SU;/?K? MN4[=6Y/J^O6@>5^H7RO^"U!+ P04 " %@QM3.=#(&7(' I'P &P M &-F;S,P,F-EPW%]_W]A)@9:^[>[2ZEY;J11[ M/![/?//-.&E?^1\&G6JE?>6Y/7PR^FG[?7_@==K']A.SQ\5T^V+8^\QN_<\# M[_=:I)+LC#4;\XSYR@[&^U/^6>9^Z M5^[U>Z]:<;L^S3=_.WGGO+R9[BUS>\,;W^NQ38MA&3F4G31:]\:ZHPOWVKNM M#S\-O,_W=K8:C=;>S-PK@)^3J$6>]AWV@:=W[#]'[$/04XG*)U,';DII2;62 M37EV]G^2M@51M9YBJEJG><3Z;,H7@J5B(<52A"R;2LUXDN0\QN! M0BD"M^% !T&7:;QB<[B=($-0BN,U)HIHZ.V]"7:A),5.M0*1/(8$T*80+;.? M-@8%7$]9%*NEF20-J9A(G:4<.W$:M(;#3&[XZ8O^6:GW41 MRJ(&4&JH* +SI=4*^:O/>"I,:.!I.8X%>9 )X&$<2STE>1*;@1B('.A[*'40 M*YUC'5%&JF(;HGFJ A%B6+,#1"04B+%UN_:DG6%+%),ZF(N0EQIFQ96,?)*3B(9B7H L9H%12$47H >0"OM [2OG/Z$6?P3+VZ^[";@""A2 (;=N' MLA MH*M$49#-C$W&=6_R#51 =4(%09Z2J]>N645 M1QN2J;3@#)HV(] VP^4X$P9$6RO&"M6(1D,)@\S: Z &;**)KO!)35");_%G M+F&O072>!.9&=/@6VU,7=T4J]!)!I4L==?6!% A"0?AE^E0K2\'OB,)MH34D M;GH$\TBBO#=^4VR+?L[>A7:D+@^Q4(O[S-V1N&5/ 6F$%:7?L15+PQDZG\$1 M\B]A#E*0X\[;]3ZS^I]2(= \NB@$48K,<.!I81(9L3+/;(JH.H97JQ69+%2\ M$,2N"9\4#Y_2(OG%;!ZKE<#LK1T\ZI+7G9[8M^\SV M01A\]V+@L:XW&-S>N-W^]?O?:XV:^7[C]GKE]\*RI0RS*<6J\=,Y>"5%?UP/ M5!SSN19GK/RO9EY'M?U1N6Q!'(J:5]J7J7FM>&75]GL/E)^>0O>!*97_H#>M,74-^K+>J76.]?'C%PWE&RLZ._Z,O@]U+W'P,C"[@O+*R&[4 M.CL3 M&/!ML%/':*+;>E;J?7M6_7 M;,$4-!MEQHXZM1["GCWJ<"$"_S5>/U?SGXY>]39<#IQ]TU7 MEF3#@FWKO^PFSX-3\",]MS]NA1R;=,QL<:]ZS)K93F?X] MMB_!ZKM(:+'0,,W&&^':%;)0' 1K]8&]->,+F'(..$>0Z#3Y1*#E3I\;2D+T2@6<%!3:D 8RR@F7&GL MB%8AHG0?M9*S90Z1"\)I5)G>!G0+EI?PJ25E8**DT_-L24U FBQJ353K24$T M#BR(1BJ('R/#W/X@RJR A8! M%WC!$RNIDKH0X <.1PI)T^HO%K!4^A2_^]_431^9@T&^7T&XH;Y:JU1F+^UL0>5/I45 M3P0!"2-L!/-OI>3EK./.\V77^AC"$S6/7XFPE+W ==S!/>/'3;0=$M]G?%61 M;+5&Z!]#=3<6T&4ZM+/Q"I+0#)AXIIP<)TWL][7#I>X Y=[*T*1-KQ6O4%O0 M^)0V#2G?AT5[MY/X^CMXDM#3/3Z1^7ML+H128M/*C*:-_4M.[4.^._2VK8RU M9P-IGMRI+H?="XCW!>J(-A(!\U^._^6<'#+26E1[V-#MQXX?\^]+G[<(/%?8 M8YORWO[>N228I>[#SOLP67SO--#@[Y=J7:B?Z/(/A.'I.G(GP5IR.'1?>0P] M.')J^I>Y]*5U!+ P04 " %@QM3'R>/<]<. #FI@ $0 '1A M>60M,C R,3 U,S$N>'-D[5U;=]LV$G[>/6?_ ]9/W0=)EAWGXB;ML1T[]1XG M\MI*T]V7'HB$9#0DH *@+?77[P"\$Q1$R5:C6NQ#*@.# >;[<)TAB;<_SL( MW1,A*6?O]OK=_3U$F,=]RB;O]C[?=DYNSRXO]]"//_SC[PC^>_O/3@==4!+X MQ^@]]SJ7;,R_1Y]P2([1!\*(P(J+[]'/.(@@Y>-\2*32N9 4UW&,CKIO1JC3 M::#P9\)\+C[?7!849FG-5-PJK"*9E=^?[2?_-2O^D4HO*]S[_?-4OIK=T%\F MA+V.SO$OK^4M#G^BWK6:_?NB!RI.5?B_5Z,O7U_>S[^RP?#]$:/A:>_DMU!^ MN4Q:_%9Z=R3$"'!G\MW>G5+3XU[OX>&A^W#8Y6+2.]C?[_=^^7AU:^3V8L'C M64#9USKQ_ILW;WHF-Q6U)&X0ER31#+G7(4R859EY)WE=9@:+P M42_.+(G26M&7L2A-17U2D9/$ZT[X?0\R0/Z@GPI&LC/!>)H)C[$<&:5)AA'N M[/<[AUD1*90M#HGUHATUGQ)96R#.JBGF*U$I5L(1LGLZ6Y?^UDA M^"/@PB?WU".RZ_'05+5_I"LB 0D)4Q=]JG!!122)/V _ MF-]30224,R9<04)2,!%94,C#@1<%JY7)FU);)$E(H5H?O%,T>(DC&( MY20WF > H)[X2(8FDSR@/J3X*%&$8DTMQ@:&:RS N#NB*#2Y!O!ROAO]P^;H MH^]*BO^UNVQD@,G!^!+V'R&)6:A)=Z/_PH5^K@WQ,8KUM9AK;&_OH"/>\<"' M7=KY[Q%5CX*4'I> FY/754X. MNBGX$F'F(Z,/%13N, ^7[![LX2)9,_(_W1B_J6)\V$59V1V&\XQ+TV7/I:*A MGJ3/L6 PY.6 ?=9;EFE (!%F<26PEYX/5BWDI*:_7Z7F11>9&DS?S^I :26( M,U2H!F7U[#"-'S%EBC"]W4_GG\I <4JX">I7"3KJHH*ZPA35CBC2NQ9\2H2: MZ_$!>\NIWN_$%-3FN*$_J$+_LHM2-?'P2!7M,.*W=UR[RX@(3[D0_$%/$LF6 MJ2['C?AA%?%7L$$R:H:@!N5Z=ACP*S+! 71#CQ _!]M*=0/]H@KTZRXR*E!! MQPZ#?(NSK67\TPWG417.-]!O\:[O%;7398AG*9#%!#><+ZUSTGXW<>(@4WZ' M84TW8M=$G/$PY,PX5&*$%^2YP;8/I7 JS;9[H K%NF+/S0XC?T,"O16^QK#\ M#P5F$K:]4&G2NQ?FNM&WCI]].'\FNI!1AHK:=AC^YIU\+,B9"$-^@DAY?2FENB*TS8_](GUP2#3'8.XSO4! , MP,P+\):3W.A:Q\(^G M3!3L/[@U15)@X0SXW5]+<\%IGP/XKO2*F&G9]#K[ M5)C'E ;C"ZI=0!0'ETPJ89ZH2*;D94)N!JS#81].AUIE_'R4#E5D6E%![0ZS MDD7H]#-E(C2-3-RU=3EN_*W39!^.DWG #A4T[3#D-U1^U7[PS\PC0FF/:!:L MJ\]R@VZ=.0_@S&D4&5=?2=4.H]XL#KI.[+19#/7@D3%4]%WZ?P7%$2X?- M@JK#!J'5@S5"J^B[6/,.DY.%<8I45!/=P+OCK2W&JP9>BTRL5]3)U^'3!6%; M;IW1V"*1#>3*,TN]7EN"NPX M<'VHH,6^U@%5VK8NSG=S8)^W%SNC6AX:^D?>$X5I(#]A(<",>[**G\0JZ^;/ M#C"OZ"])ZD-9A3O,;NJ]R%T6IL,G$)6])@MDW&Q9)_?,7R(R=4B9?U-B=IB. M\GFMQ$)]EA/\%]8Q/%/20KZFYP2V2%/.='#(INAI5+DIM<[HN5N%9&X54G"K M1 6WBI=6C;RL[K8G/,:']AC^5V#=\@2LQWI+]9I4/_#'LUW1X2;<\DBL2?@# M;TEO[$J82;5,M'TR@*TM+7("!2FF"72KEILMPXI<@(236V\ZF+E?K!U$C2S8[E MI'&%KMJQXW[[<(%SK8FDFR7+.;/P[<26)"O4>#K_B'_CXBR2BH=$Z/*E^6V9 MD).:(\MU8]2AT1R%6B'R$HU(?YRMG=X23A:,E-HL-_Z6GZ40$FZ'PN+H<,5G M69_IAMYR=A2CQ&C8KN?I>PEPSO=H0$WSTF^, 4CFPZ%Z6WH#AX\A/Q^/B:=[ MJ?ZS1,^C-+@YM/P7Y;ITH(;&K"H\0S*M#\%X@B2.2%IEG-+2WKBBNQ6SX"O6T=);F MS?I%RR7@)LA^SL-^TJ9=PAH]=%,:20WDW,18GH7,+P3G(AV2T0_?2*VT/;4N M?4FZ?M0T%W=393\DLNPEZG9,+7URJGP\U[S2EO&;<87>"B62;EYLS^/L.BQTG:- M6O15BD6N<*>,FQ;[NPHU7ZUH.5GX)8MZ2MPB;D;L3S'87[IH"5G\]8MZ1I;( MN"FQWPNI^3I&RTGYD>SI-+Y2!0?I8_"%I];+VX5FLFZ.+(]"42OR]+/S8]"+ M:*[X.:[]^A]]_= -&2-S;=&Q#KZ\VY-4/]"QEZ3=P03_;D]?CM-)[ZOY%4SK MSL(@%=&J'=<6&9*K:"05IRJP\"PMUK5*H,2$7"F1O;3QJ0)%E2Y^7:@&Z7J@ MW_2>PN0 CU8U&8J08(.V7FG]3VHD]+Y5C:QTV V9>I;7\J0&P]!9U>#R:-N0 MO>^S2HKF)C="]?(KH9*_J]=&O07#N5"(69=0N2X5BZ]#N^*>4>4HHO_JI.4Z M.JG3/^@<]KLSZ>_7"2N?YC.U+12YQ5ISJIK M2_9(H&2:TLEUK=,WJN_O56B*A%H2;(Y&$F;H2$M_$#R:OMN+U5$0<1EQ0@0WZ.IP M(I.DW/Z%N=O0]$OF1U()BH-RHVO2MZ&Y)HAU"DN"K^.X@*:IT*3*DTC=<4'_ M(/YGYA-1]5*=SA,/([D6<$*YP6Q"A@^\TM;+K)9 $LU/$,(+W@D M-HI@J8+G"""]WVP7+%7P# &\I;.-XE?4_QSA(_>$;1; 4@W/$,)S.KE3&X6P M7,,SA/ 399N=!4L5/$, AQL>Q,/G/80'&^Y^@RWK?1] S167$P*^)P.$5Q^P"#LFP?6!$RA28M4JN8'*<-XJOOWZWYPGB4Y4B$6>& MG!&%Q?P)<$C>7=1/:Z;/F]T0!2*@Z"RI.K:[D>36VIG'D]YTS8L5)Z!(OPR; MFN<0P,FOU*K5.W LH8_C;/(48Q^ZG1\%9#"^T5N+B%3>^Y%:OQR2F3H-S!4- MR9!>M=CC#<]'KDK5/H']5YQ-]"MC^8O4&7GFN3[+\E4*_ 5L3+[ML)*9-66V MQ-)EW;+<*^LM?Z2.+4'B'"93-?]"?9(3-V ?B%Y4IG?4.]&/CES#TJI#J)/< MV O!P_.9(H+A(!O,)PJFFU&DB#_DL6)Y%GNZ!^/W/*0>U;&W&+YO4?$C,)_& M+=EFQ&'Y)W3"8L/-E_PWC'1-A5N!<-)^_4+6) Z9#NYA/-*0)%8.QD.N<) " MM(+\EMIW"XM\H%MKGDZ!S!?/2O47!+,5CQ4S,G.9QX<= ?CIA:=SZ9P8M;KUBDYXT%@_OA"U1UE T;^2[#X1%2IIVRN MCBWM3/^)L-DK#,8%,\&VWTC)RLO8Z5!P4*Q3L#D&16NGL'EYBNC[!)H!JUNZ MPI\EC5[9\J=0M"H2FUA-,SLN(@40)_L#W8^3/<(?Q-<;PG7A>3*U6SITLCU2 M9G%B:W*G7T,#+]D]IYZ>0-(==XKD)BO8A@Z8?6I,VV,VCS=$$G%//G'F14(0 MEDW.S42WM*-4Z5MK')RH:[!#Z 7EG/F7S LBG\#_TW4J7[D6;GFL$?KMV[.^ M)W?3^\XPI,K SV.Q 2L'SE>\B5B^XK;NNI9[R,S"F^S)F^Y?B'X A?@G]T3@":S+.@P-*V5Z M[(QPH ,O5=RWI$'?]'2WR>$\?.!_QJP15[,]_7Q#PWE3:-96LSUH?O-!6L5] M2QKT[6>-/PV(4I&#;T.&U8;U\#60M,C R,3 U,S%?8V%L+GAM;.U=6W/C MN+%^3U7^ X_SLGF0;7EN.Y.=I'P9;[G*,W+9FFS.TQ9,038R%*$%2=O*KS\ M2$HD >)"D01\*ONP.Z-%-[O[ [H;0 /XY1\OJRAX@B1!./Y\,#T\/@A@'.(% MBA\^'WR_FYS>G5]='01)"N(%B' ,/Q_$^. ??__SGP+ZSR__,YD$EPA&BT_! M!0XG5_$2_RWX!E;P4_ KC"$!*29_"_X)HHS^\G4SATG*_B_]*?_DI^#=X/'(_Y_RZ9"RY=[$I7?>'-4BK/E3/\O4K2O2)*@3PD7[QJ'(.4( M:S\3M+9@?YN4S2;LI\GT9/)F>OB2+ Y*XW,+$AS!6[@,V'\I-MNOIF 38;* M3RB$R6&(5T>LQ=$YIAV0BLMI'PE1_M\_ Q$S%IWCQ"FB4X(:>.AA+D!!,;I(TQ1""(KR:24/8K)AA%X>J0T><;2@?N;+'QE*-S8BME,/).XY2!XO(_RL[8%* MHCZ%RU8K0#;4%.@A1DO:D>+T- QQ%J%O@(4IS!F'K&$T=C0)K0]BGI#\!J2=,/L M13W-FHUMG8@JFCY]P",FZ22%9'6&"<'/#$+MB%?0]"C:-7P $35#".'"1*RV M]GU:"Q@XEUJC7MT(BZES\*(70=*T1T'*H7X#R3E>K7#,0ZE.)C55C^+=PH@Y M))H@I9LY 7%"'1#-B[5&T]'U:4'* V\@O$MQ^.,F(^$C3;=O:':G-:*.L-?< MA7YCMF8V8%\P2%OD[7MUI' )"8$+_BV]"Y6U[E&<.8$@R&:KD\^0O,\$J]LPLVL8K[OW&(^^ S#3,26 MYNYF&V9B[\5TI)F'F2;F' :>A9B)JZ?L.\Z;H,QY25SGW,9,M0\5L M^;A#S-:7]\1^),QLM>O":XRDV;#;F=(/++*MU6UX#+P;89W:6/#H>]IRMOD* M_HW)>9:D="9 YI2]83\Q).];8&OCJH@&G'L99UI*LEY76T,#:?D=0,):OQ&+]HL61PE;U&=L)HCVC9)^2?!*9?#"N+B+*E5@J!0' MP3-$#X\IE]XED'P-8 [)BBT5)6FM9$3$3=[:#*83IS"I]/0/%45EQ#>8ZAV% M&;D9;F^,$:H=B2W,SK-XYQ4JIJ;? U$JY6_$H6IG!\-X'&"0EZCY9 MGV^M7<5?7FB*GLR69RB*VC?69N2&X <"5@J@.C,TP_2#VZ1Q/VOY!W^NM&[J MXDM&WY9K2)'SSM;;&/H-QZ$N_D@;^Y&PZU($43W_L"AW?]D*4UK= J;9C"H( MJ:C\2,M;HY%>8?]@8K/S.]Z7J.V*PQ+7: FOXB0CQ?4 BJ4*#:D?B;=B?<)( M=?]0$S8\3>:^2B(_TNX6I S4]0^CR@:T%AI96R_6OLY _.,:@YA-2+_A%"8W M8,.6& P6PMI)7:"D(G.=(=G I5??6]1L?+N"Q'5Z9(N6HKUW2)4K![NU!+:T MH$5+0^8Z33)&S$A]_U#C]1.U"Y7.X!(3*#WX+DD^S,C=+@?RXCDFB&XK6&CI M.G&R0D=8V)/K[5\?/%TL$+,%B&X 6ES%YV"-6,7)3@&%LS>@=9U2[8.BN6W\ MP_66U0?%NZ,M-*AEJXS?UT(GF"A$BK!@0NLZ]]H'5W/;^(>KJ+=-@/#1J[9- M1ZT ]@ZGFIB:V"=KZY_?;,&I75$)*!-_EJE.XX7-6-)3NAY9IKHU\-MWFN-P MC<1&345#I9J_'#6UO*9_'Z^@57YK;:VZ]8UY=6OP4XW?7X>NS57<<%M3X:U* MA1V3 "^#@HU#)_(KP4ER0_!2E4/5&KE-!)]@G*EJ878M7+LPB66%U*VNC7^! MGZT\S):_8KS@_@D2/B3NJ.=1%[FTT;CVMWI,]!I[F G,UNP>?IK]Y_[DFBK9 MCH^TL>O!HM"@ 9 ,0N_&S1WD:WCY PD1[4BGBQ6*49+FYW2*\D/%9,>0WO5X M,H?-SB(>CK%O.,9U;;4H*DC7%YIQ4 !0 M#,CFBAHQ826YK"P=\P2E#!"J8#C@1UW'TQ$LVNQ[BA32RS6[\4WT"D^2EUE&31WB(;72'P$K:;(>W-%&*<@9^76-S)!Z!3F"5&SG&V^)W!Q M%6\#X2F[U0U5WVN0.DYC'O^- QVN?4+N"8P1,4=/.R()K-P MO#A=89*B_X#J@R:R4RDFU!XX_/VPM#&2?Q W;@_3KSRWM'>^)K$OC&I#^ ?< M]LCH;X0:Y@(_*T:BK*WS-8A] 6LW@']@EW*>1:?Z[\#[H MI1S=8?1F);Z_J2PK\H,7,/_O55PZ&F7"K2%S?4%'#][6P"RO WZ,H@@O)X^LFN$K)#=<- MCE\3O@H[O0:8&X>[YP0LK)RRG-X0:(]7B.PL]1J0YIO(6P-4*MMMX%8P,<3< MXY6D#C9[-<"+Y\RM89>Q, 3=XW4G:WN]!LB+,^KU(^JS97D&T09Z+2O#+N#U M2E9'^_G7%5ILD5] O=_>E92'TWOPP(;O',[Q:?A'A@ALO2>N75<;'I[N>BFP M;=ZC9VTP#^N\!25.GP"*6$9VB0F[].8.AADI7J>ZMX%>Q\C3G;(]\#= M@,I-S1%"N.#5/K4[!LMGDO4]P(R+ISML]O#;&,U#[%OL<(G8*Z3[A3@I#\=7 MO6YQNDJ2C$'$DA&#^U(,2#T-: HDQ8MAS4-) @OQ+0UC#+VQAPNOOML3)5+]NU&BSMF;K*9+>_00XR6*&1SFWSMEBH@)#BU M6M4/[$DYE(01IOD0I'^9'@8%/UYHN^,8[%@&)<]/0U?=*AXFDNOS' M085+I4^-!UJYBB%=P*A)?]*4_OUA4%+GX)3T@PO-+\">I.P&;$P(?JXM*]:$ M?M,4^@/U29R:W9\=[,@'E_D:/H"HR+G;Y7W;E/?GPX!3!A72X>T+VISB]%U3 MP(_4H& C'(*<17Y M97#1;R&_59&]\K:9$Q G@!? M9A:"(U3&AL+%@'G$529#&_XMG?4Y>(+<7)* M V7)(^!,@I)+P-@,/^(:[V!+Y3X1@N.41L=N/8,ME%8+=]!V+ M%P5A+O7@@LJOH*S)*82U*8UK)=U(8M8?OI;+*42RZ0=)ASEG\%/.<'"5MI,2E0+J*>AHLEK.114: MO>EO1CJ:]JJIJ4K5+A/4T922S515REC,5T?3@<^45$(+47X[O1IQF&_G62I) MQ:C>G&V-)K%\VJ427HSGRLG7>/VC,0U0Z2!.=^63@?%\KB2=4BD@!O/VI&H\ M!(RRE OV+D&4? ,DO^%1KJ X2[;,5HK/!-OOC):V[!(,;O="$+F:0LC?)BQD MRR5(^;]+C?[J\HH*44=^[:KQ6W1M=&[OCMXFA/SFGBQ)J2,FRKNDVRA<[S*; MX2-<-ZTV@(=%#$5>N),\?^T$/, +.L&.X?]"0&;D6GY6M]SWM&'B>L>[$[ = MS.0?UJ+F)B_CJJG\&Z:2YV_ECV%J.H!_\$4T(6$SH$M,+G!VGRZS2-1% :0A MO7\#5 ^IE6GZK(A475Z[^W*'"VP-B%V7N]@ 9:.7R0!T4)527[Q0):-OA=6: M+:U/*>A6*.[_VAU'LYT7=_;<@N>O((4$@=JK,?@ M:%Z(J+;RQH-57W9H@:&.E;_F9QO!7/5;F$#RI#Y?W4[CC0,S@*959?]NX+7< M3#NGO^"8GY73IFO"CM-N9PUN=]9@9647@W#[R5ZRO):IA:4=9J2X M/JSMKK4]^'DQ:NF4[QK'#ZR2TDQI(4IH&#ASM7NBHXF-1F8;_L[ OKIQ#]UW M-$?=*[ =E1\+7Z[G[A:&XEH&K8#L_C1V2&:.S^ YCB+^E]]0^HCB8K55GBQM M33O8)]V[@X&M6>U8^_?2P3N8J0U:.HLYN7MW,2+PME9]]?FB/DL42GFZ98D> M+0 .UJE46X6#?=+M-FHGM7JWD_N%@<'[E.0UX3TL[]]R1*E!_>8J[3:MALSU MHL38W<+(BJ\_:#UC?=P2JCD[QJUG+,0NUQ7$2KV%VM!F$3'F1<2H=6O.K^IP MHVJ_MT)-Z1YUXN,7_JD -]-?J$B/X!]QE1M.%E,8<*O,E M>F%_T@T[!8GKA[,ZP:8U@7^HM>K),Z .L;>@<_UB5B?\S(SA'X@L)E==O#KQ MJ+=T_296YR1$IK!_T+2JIRSD45-YFS>V5Y,8HNP=?*=AF*TR?EV,R0ND'>XF M[^\+WF:I[=VB;_/ZMUHGF\2;+5,(AS)5Q\+'7YV076UFIIAP#+/UJC,G>K%# M[&>;K^#?F)2'\^:4FVK1Y9U0S,^Y!/>;8,7X!&'!*&!RC;=\R*4P N6=4-]6 M.<\_/@C-H_U*XPN;KM7#_<',M#'$'6.F>\F:Y0M!SIRGUQ7V?J0/@@TTJZMM[5TZ(T$F^H?RMV* EL=, MV-R//<\'HD1U=MM"_QZ^Y=H%JOM PP,.9VS_HIR@JW#%N4$'J="XSE3V UJ\ MW]U_P(PZYS4U@O[H71^\7>\;CC#29<9\E1V%!73Z7U L&18I7K+]&2Y.[Q-( M7=I^?<;F,Z[W+_ON/O8F_O_4DS2;H7LS=KU;.E)O\7P;M9L7_8VMBL;I9JBP M)/)WO64[0FAJ,^JK[#0MHX%?V7H&$E; NVO *G&'\#2JKYEUJ ^OID-U-O@K MZ%[*N@%Y:^\FK>T;PIJ>X#,\E?6B#F4 UHR\FZ :@6IC)/\V\RO;DF:[JN+U MW>+=X^/OKBJN(5LI>31B3O/UNNHC,?%.S^5]WF4OD*8K569 M!2%[\&=)V05HQZ_I#XHHS?YU3\,:_>7_ %!+ P04 " %@QM3R/@.D*X/ M 9SP %0 '1A>60M,C R,3 U,S%?9&5F+GAM;.U=W5/;.A9_WYG]'[3< ME[L/20A?+=QV[P!M=YBAA0%Z[[YEC*T0WSI65K:![%^_DFPGEF79>'#Q]WOM\.3F_/+RYV M0!0[H><$*(0?=T*T\_N__OXW0/Y\^,=@ +[X,/!.P"?D#B["*?H-?'/F\ 3\ M&X80.S'"OX$_G" A3[XN[V 4T]^21VF7)^!P>'P/!@,%AG_ T$/X^\U%@>'J MF1J+V]B)DVA%O_N\F_U)R3\$?OCCA/YU[T00$-6$TGIZ M&C[M#Q%^&.WM[HY'__EZ>>O.X-P9^"%5D0MWHV=98"P!Q]]%T9#%\U' MM,7H'!%?)7 9[0S#Z<<=TM(C7>R-=P_3#G[A&L7+!?'9R)\O B+G:)O.SYR M:NMV!F$<-8&H;&P*S+6#81C/8.R[3M *626E1ICTC8-STD5T-;T@ \L<-L&3 M4QB"=3LC.IBAP"-#TN?_)GZ\; -13FT([KD3S;X$Z*G1 VN)=()+YG,'+XDJ M_(?0GQ)'"N-3UT5)&),HA(_$F @WNJ?04".(3]'L3\G_N5]=G!(#!1=A=_IRTIZ( _/ M41ACQVT>)3=DIU&@KXX?QC"D(V)N1F5%J]!JA'J-T0+B>$GU14::!7VWFR#6 MT>@< V8(QX,8XOD9PA@]41,VOO$U-!JA7<(')R!J<"'T5&#)VNO4EJ,PN'"- MM XC-*;>.<_-$"J::@22O^K7$)^C^1R%+)0V8:JGT@CO!@9T0"()4KR\PTX8 MD0&(Y,6-2FNBTZE!P@,M(;R-D?OC.L'NC*3;UR2[:U1B$Z'6W(7T<;6@.J ] M**0MU>VU#J1P"C&&'NNK>0BM:JT1SAV&3I3@I1*:RL9:W3[V,4L;51RINK5& M.%\<'[/9^M7TBT\CK>\$%V3:BA.6V3;A4R37F2#EF39==\!S-I=NS()J:'2: MUH]^T&2+9%8D):"YBT)>7DMD?1:A=S;1S:SB;MNYQ9WQ&88:1$GS[F8;:K"W M8FIIYJ$FB3H'P[,0-;C-E+IS;#5<%4W-Y-NJKY6$P'CNK89/A=9@_JAHTUHJ MP_%><1QJI+0>7C]!$N&#Z)N#,8'SV+Q6NQ57 ^%V'269)K.>56-M/;6Q0*N( MLI:HNZ!+QH %"FDVW488K9UTG'&8$;EG@CXAD[)6<[>9;"D*UI9/=Q9K.Y9K M8F_)9FVEVX27C:19T>U4Z0U#;JOU-CP,[T:T3FU:\- ];3E;?G7^0O@\B6(R M$\!WA+VBGRB2ZP;<6KEU1 ;G7LJ95BV9UM56%X6N'_@L^\\//)">V4DE.CC= MD*'X#GV>3J%+E41_5)1"!V^MX2M/X:ZFG[(5=0+F-(H@BSN7OG-/P,;K"4-S MQ-J4HQD7:_L6*)#:F?(KZEN=@XT]KK;:;LW(]!J&ZI"N0&L&:G2#@N +>G*P MUQZKG-B@7@=% %=)S(ZM$I>E^<9#AFY&6& WN8<#SR<8([:-FW545-&*"YF3CDC34=9F5,G /.Y5 M9P,/SPP@@%OD=7_D!&#W(&]L!6WT?@D.^K M(P>_F3BY0 %R M.2D">@L)87'LB/*7?NI$]^S-3Z+!@^,L1C1/&,$@CO(G+',8[(ZS>T>_9(\G M*W!$=_""_'?UA@3./0Q8YY.L<57;41^PLUF@ NZL71GSVH%.<8X^&SH5XU,Z M7I^X*(R)RWU.DS(RYL.'XA'S*4;S1H5FRD.U$A0U3(#L .K'^./.>'>-)4 1 M]$C:B),*D3LQ4^KMZX6JTV=?Q=NJR;0:L3+5;#(:;PN)P>IDKK!?MY8J@?V4 M9; R"TF::[6,F$\WF:56XTA% )EU]G9?OGDFXPHA=%DH3RZW'0ZW-2$34F;% M_8ZMF*T6TX61K]FT2V9!H>E$N_'X^9_$,/7O"6K&W-/Q[M3SF.*R&F\A2NS5EMW+,.E&4DG'Q?Y;_0R&Q 3Q]O8N M,'H5EB[+(QUGN\XD_TJBF"WRW2%)>L56_LZ(PWHTU) Y$]NEXTX)0#*$17X, M;R&FJY*I/NC1I8?49G4YJ14 O?)AM[[X#<;I0ODEBFK6U[AFO;>K MB%:F_:,>)<%L*%/,@5G;WMM! EEFC'>%S9I121C2U0];&SEBR2=N_^9(??^& M<@(9*[/[4.UJ0''RO*.[K'Y$]P 2#,D/XR'(^+$]J#5'L&8),,<= 2?T &,#"GQ,BR!6-N( 'Y-N;9B%8=YOXSY'1F-&/4=H09KTZLM%P?%C&=TS4Z5@9],0*6!RR(R'L[ ZS0QN D9E&V% /BP,KQD@2)%?# M&>$ 4A;IB0W3R!L+97'8A8 X)A$Q8P$8#U!D8ESMC16T./1"=!R3\)CS (P) MR+D RL;XRR:KLE6$O2>$Q#&)B2G:E)9A-:YL204N#JH0XL:'-$QDA"EHTSBK M:W-Q,(5@-B;1+*>S@U)2LXN#*<2O\3OZMN6$5EQ4M787!UR(9&,2RBBGM.8W MG0JLF($"-^,9:EV)+TX"(=:-2;!;3\% @8%Q3ZFM_<6A%N+@'HF#C)ZE:!P' MXV/;9L6_.'FVG$Z"7_/_FCYSJEXGC)-O@_DE^#5E:%HB60DK#G_]=-,6U.U* MB14%VM&R M"F<<4#&6E^=6M@ KE3SCL(M1O':J92)E3?_;%4SCY!-GQ"U3E*P;L.K'5J[24&>-DU((]*LL!:^X@)C]G0MD-T&I M0W\@1/45K67,>NNM<3(*\7R=ML!5V@(+:4M22%O/2<.J M=CV]:BQ!*S6%?:73[\Q>33F0TDNKI'U-<\MWBNM5BU00R\R@^1*Q53OT\O+P MUK8R_*49(:"MO7@94\'BE#USU2 M251^"C&*%HX+:5G4,(*UVJYN;/W":%M-U\"6#D2:U7P1>@0F]FON3]-VY6:3 M@YZKMA*P3*D'G=^/)A/J!-9DU7F+R7$W-PTVSSDYY#(#%(2R?^&@MI W-Y<3 MEHD+VX[69Z--%;XYY,)Z;G$/$MQ97?704M2;DTY8I.6[H%M)?BIO[#R#*.\& M$$.11PC O*?TB;U5S(V+?W/B"XNU:\94])PU-39(F;,EH@)[B_M.S?7".=G$ M36AQ ]WZJ]>BBC@GC+#$NEI*)K-+NGM$=],CRLOR0F3[PN*<7.(V==/1X"Y6 M[U2*D'-B"8NLJ20H/3FPH$PLVTFM.#DGA+"B6A0BHJ6/ S!E;+J08HNJY$4I MC\155M%49='1NJ=T%V#=5S_6824WGNG3Z#2)9PC[_X/>=Z)^7%9IIC=XC8GJ M;YSP067IUE1_G:[VNC/H)0',JH)N)MW94I2O:?78<+^]68TVZZ3E!6PKUGPI M%3KUJJ"AKJ>)SKI;HK?C1\B\"NWL&W0;NII*9AKIK*-ZJ 9]1)LW-EFH?S58 M7[H[]G(+YS6XK-U=),VQY@G5;T$9ZJZCC7^6/=26O'2.@!OOJM=F=)MJ1XO99269>Z>4 ?+ M::375^Z.UC0HW:SJL0^6EF4L^:#8ZYL/ZM&@=!?K-2X^-'AK'_#]+'[='UW+ MWH#CE_P&<"1[O7!Z'M*;GUM0KW2OI-.B6"59E>K '(D?,)1];J6#LN'%[R^J MB2-^Z+#B>XP=R,)]HU%-%/%CB.(W&SN0A/^.HYHHXB>5*K[KV$5]H62Q2._, M.D'^G9_"]WEJR]<(5:Z*S(!+/_@S)>R O^97KM:3#1'T+SJ60M,C R,3 U,S%?;&%B+GAM M;.U]>W/D-I+G_Q=QWP'GN9BU(Z1V/Z9G;,_,;NCI4ZRZI9'4X]MS;#@H$B5A MFD76@"Q)Y4]_2/!1)/$@R*H"L]KC"'=75V4F,H%?XIE(_.4_7N8Q>:(\8VGR MUZ_>O'K]%:%)F$8L>?CK5Y]N#X]N3RXNOB)9'B11$*<)_>M72?K5?_S[__P? M1/SWE_]U>$C.&8VC'\AI&AY>)+/TS^1C,*<_D!]I0GF0I_S/Y.]!O!3??%C= MT2R'7\5719$_D/>OOK\GAX<. O].DRCEGVXN&@+K[]Q$W.9!OLQJ_M\WSQP[??/C\_OWI^]RKE#]^^??WZ MS;?_]\/E;?A(Y\$A2Z"*0OI5Q052='QOOO_^^V_EKQ6I0OERS^.JC'??5NK4 MDL6OS$+?T"1C/V12OQO2&SH@T\X=\M1"HR=A\$8-2\KM'3F=Z96+.OP7^;Q/Z$.0T@H*^AX+> M_!$*^EWY]65P3^.O"%"*UC?:]7U+5LGTK6]EKREG:726C-.ZRSV1^L)W>+Z! M 4U^[R;E=[8]T7(VO^?S7M.C8Z;B:;G#N1.U<57EP]>KK-88O M+\6GEHKT)1?#$XTJ)4&$I0>6)O.4J[9G0JZ4.0NR>REX MF1T^!,%"%/#VS;Y?OW+D^;9K#G ?\_K-Y C/A7%RWBJU\^!/](^+\-\R8/XEK)LSL*?6!)INX9^'# MKFH-#3T9#E18=5-FLA4Q*:EW#(6+)!*=$V>&98^!QEOSF]2K&[Y+@*/)#5IU M&WM-MJU6WM9FW6/ Z7&0T0AV>00,Y2&/_#8[6N:/*6>_TNA3$E$NYSE7"_C] M6AB7':_.7B@/64:O.0OIC;"7VK;X=E&2UXW!W555:SMQ^\5,[BJ[MTW9NBR) MB:0FDGS'D[+MVG;WG%IF=#LKR]]T<,?5M9Y+[JB@R9W*AW7*+!8$$UD>:19( MBA+)ND@BRRP7QT6I1!9+CE=$ZYVB[*VMHCWYJ"C,,J7>96E[ZZ=JE>W,4]=% M?9F^JMCGU5NA]#WSUW/1EM[5T\5A>^9I]ZR%V^.VBAK7_U4J:Y=N6E= MT!?II5WK?#JI*'O??!2VG/UY:;.TO?53M^>L9 M>WC,O?EKJ[1]]5=-E>W*7QM%?9'^JMKGTU]EZ7OFKQ]9XF^UVBQL7[U5K;!= M.>NZI"_25Q7S?+HJ%+YGGGKG<1Y\M_^S8*6Z=G96\T7/@+O6>3VGV;O9[Y7' MP?1J_\=2I;IVY:-77_1(VK7.IX]>;7$<;<4%9C1\]9 ^?1M15H0$B@_2@:7S MBG_\Z-KE%3:OD&# M"P*J8F8D-&@GZMAOZ .#H47.@JID#Y9NS$#ON^NWJMT="[3$*$#CHJ%QM&@R MD9IK(AP=)@:AG$PYDMP%+Q>1 "J;L>)1IQZ4&.G] M@J5'[39F#,2(H&/7T( @P43:7%,"Z2()4[Y(&^$.)^E2=("KDS0RSU!ZN/R" MRLF$-K2L+(@ YJ*G 68MUH,B)H6DG)0""$B8!'%'420J*BO_NF0)?6.T7TOK M%UT6==N8TA B0I)9.P-^2LJ#Z@,!'HAS1P*:MP-,?3L]:-ZZ@N8M:M"\'0.: MN^<4"6C>#3#UW?2@>><*FG>H0?-N%&@@.^&4L#D1'Z_X7?JL"\XV4DX"&555 M+6#69/C@HNC6!Q9@@/D,L$P)$SFQNN+7/'UB26B>,IO()P&,06DM:CJT^*"C M5[ //_6$N.*;M*\I)N6]3E*13=/+M)74=S$%#3Z0M!7K[5P*ZBDA<9UF>1#_ M/[:P+L3UQ)/ 0ZNP%B0M2GQ0T:G7!YB"APBF*1;6)5SA0$-[E:SSN[\KP!JU MUE> &S^B (%.(_4*<+%[4A#Y;F; **>!H4=H_^RMD35*U6W<^ U'$ZL**2TL M_5K03.'(ERG$2#VFB3E 0"7QU=(FY:K6[OZ.HL4-2G5;79(123?1;CP\$Y_I MN^_&;]Y&]JXZ]4!>_8"B=;O:J&\(E;][;LV?.,M%R?"@]C(I3WET<8,&.E^M M;%6S:G$M$8K6MVG614))2]K$GF%QF\8L9#E+'CZ(Q2>\):>Q2D?D"Q!F!2LT MJ!0HH&!42TD"5!.2BM(S"*XY!1!2T1#R$B"%7$-7LYEVM+<1^P)%O\(5.,R4 M*$#2JUX7+(+A,&QPD(*%2)YI87.194O*!X%'PS(1A(S*&X"DT&.$DTG)7E 5 MC%-BZY:&2S$^KMZ\O;]C>:Q;7*HDWL8D@W+UB-3Y'04V#$HI+]##;R2=D3=O MO[[_AE1K^7T:&[)/::E\@<"B8H4##0D**)CUZJ+A8TI* M4E+03I&=JJ6LQIS.[[X H%6K:OK6CR@:7:>1XORMMIZHRS]["1]E&FK]A00] MF>^N7Z=DM_MOTJ" @$4Q95%2DI**=HH+">LAZZ%_$O PV23@H6<2\(!Q$O#@ M.@EXF&P24!5;I @1_=+5?

D-R0BNU;U!85.[B0T.*"BIF_8Q]1LU"UCR^ M,UK*%&<7R2SE]G\8861^5KX/30X\"0FY(*G JV*I=AS;A. M=>E[*[T(P/B)QO%_)NESC\(L>@9ALQ'2)$2-%K9D!( M34P*ZFDN:!?9(^I)%G1XVA0P=G+/U[6M2G=N;6MI$6'&JJ#I#G>9\V,]-RZX M)KIBF5-X+X(]T=,@#TK=C/::R'U?JK0IW;U-J:-%!"&K@L;[DS4/I(H)*DQ- MEC*&GXBIUD-JB1+O4/E/'*.HJ.:.J4D0P4.GER6##"<5[218N)T'<7R\S%A" M,_- U*'RBP6MBFTLM$@084&GEP$+DI14M)-@X6Q.^8,8WG[DZ7/^6.9G-=IF MH/:+#:O*;8QH21%AQ::? 3,5"REXJI2ZTX#G99U0O,BR:+940^H9-D9E.YA1 MZ# !QJ2<@I:8AK#?\C'-R5U*/F64Y(^4R'#62'S?R 1?R)GJI9$PA L1Q:P\ MB0*N@Y"-V/NK(T:%E;='%$H40.I5S_P.2\CUEX'J>!>9>E1>,Y8YZJ7B=9WIH $0)4K4PI M\B0AD923M/]QD'SFRT4>KJYY&E(*4599W5OU[;\YP1U]R8]%09\M M*PP'7M^K-V=SNHNY7D84(!RJK6FIEY&F '(/,6*E"/(S""%2RG;?+Y\%V;VT M%W'$57*'PLZC[*,YED/#KM$/A&G5[") MK38%&A1IU5(BSR01*BR4>PDDSP](<',2 M9(]'201_G?USR9Z"&$;IH_PDX'PE9H=_#^)E][[%0%Z?N!ID3A-G3HQH<#=$ M6P6'@HF(J3\)X0-=LR-!Y.VC6 C?43Z_2)YHENNBL>VD7N=4%F5;I@+6L+6Q$B04QXC9<(SRM.#D IPW\;:0%ZO8^00"A!" MPM8.&Q)DU/.^CZ*9K/C04DXRG5=5U<[$!O#Y/@)P,J.[_6]E M0@,]5TVUV_Y/0 _3IUAPB,ZN9,&$PE.(!^$45D/%R-^[=6OE\(D\!]6;F+.0 MHT%;OXY*I$_)@7&I6IA@G6=.,2\W3\@QSL2M4W!44^]+%HAE(LL9A>U:&0#Y MF,:BV\Q@O,Y7/6$2[NP^(3/4J":H7'G1=#\#%5:>3EFSRVE74\"_D4($/JRZ M!?'8&";"HT,XCYD:(^:&!?;$:T8LT3WUR3Y<.[A,@P3/F/:$"U/YDL+W((ONL131%OH%=:% M5[0IT:#)JIXQ@&)14.-!#U_2Z#:(12>R>D%DX_&,I7[U.Y R,V!" M5J^6&H !#PEK>D0]%&BF#O=VZW7T$V#+K+8&5RHQ-DP9-=3?[P]*5"$+C:A. M/]?GH7"@:8=5#X]/:#FIWX27E0$-Q%RT[,*LXFD?.H>6XVDD$'3NSJ;NQ]PZ ML(E[KMXM,>=^JWU"W5@J(L'-X-TQ+/MAPW; ]F#/:_ NEVY7"\L&1./:NO4F MD4+F-YQ+KV0[3JM-@P8N!L74R"J9!2 KL@#\[U>OW[X7:SY>G @>D&"9/Z:< M_2H&M.\.7K]^#?^33.8*./C][][\\?6?U3\9I$2/R!\.7K]_?_#V3^_EP"C^ M]8?7!]^]?E]R(\'A413)2[Q!?!VPZ"(Y"19,=,B-RC/-3QT8O4[_G0UIK0-Z MN=#@V5E5)$IG\-ZOH1Y< M&'T"S]V0)O#ZN= SUG5+O J1FQ+ 74B<4QG*:=WG ;9DJ]LW9XC[[03/8LY M]CF?AA'7LF*(RK;IX.]_]]W;-W_ZLXPWRU?D7@HA>2FEF T@06O+--M<44?H M$X=F19N@4ZG\(.S[ F$)?8".RX8QHX;J8Z!-N!")J3=_)N_??W?PW;L_R%G? M^_?O#KX7GXLY'PERN56"!%FJ,SE[W=0]G%MWAKWOLFZ)9*W5*T4:DZ&-/AD9 MM((K7FA,G! NP#EJVX5?L8@M0!AW H4RXQB*!)J-Y=!UP*^XS%T5R5[\FG*9 MY*]_O\#,.='N2Y\IA@T9$QN:I86[KH9MFS)YHV F*2]>-HR(Y(O/@@P-?,RZ&9>> M+? @ M*[8H?*)&HUH3)HV?<6TOJ8KI=Y),?TI^LI "D*#DELKHQA]I0GD0"\@?17.6 M,!@0X5'A,CN9:7_7D=GKSOD@@UJ[Z4Z<:'JJ0>HJ(V#!?$ >"G:YU1FT!&"+ MJ+Y:4% L>2@F<)>I\JZPE=(G!BVJ-@&G(&%GZC3F?CIG<[_+-KG1[_::G1=.5]2C8#[9*P%;F]'FPBB167K\O MD0+?_/)CP!+P@*OD.EB%CS3\+&8".0WE,[E%+CNXL'DNS!:]I^;9\]%2?.!J M0Q,!;B-%3(["S?3N!V<1LH2P9G+&S;=3:BQV,^" WO.>O9CK>(GM0!22$ RUDI3/Z9)VIY9V)<9 M?4Q>IW9.!K1F>5:.R1$X2,U^ 'Y@62C6%D%"TR66E<-0O"&!VB"4X0!8[XIB M*,"*F)PJ(2?0(\'4>D5T+AH-TAJS9"F,*I8+GCXQ2/H TUV,&0'K:BE[I&,Q(3?OG1NI_7N24675"Q12--,/NWZ:#+H& M,)&O[PM.++M+'VG>NV'9H?$ZR="IUYI8- EP=7@ZU89U44("KFE%=>.LB@4] M#C(6'B71*8N7N3&HK9?+)Z(<36ABK(<%32?EIJ>20 2HY %+5-"MW[$0([-, MAP37L1$%[M:Q,7>VQ( =HDG>K[XSIOQK4:!!D%8M\^O3/TLR+'%)M5Z7+*%R MMMAG98-P$G@HBFHA4E/A@TE7-0M4@)1(6BM>=EKM(R^MO?5:\:+396DD:H[G MMMF%14^7M"OD*,\YNU_FX,$D3^'&AGSEX9@^L 2Z?W(F^"]%):+\0Q#LSO)AB8SQ)KK@*+EAL-RZ)8?&/R4?2/9?FP^EUJ2(=4K42I M?(68)IG2D:35_KUUXEW?3UQ4EY3>SP'@H0KKZ22Z4CS@4A+1Y=*THY(!=)"#?,J-Q1 MED']C2(FZK<';L[Z74;96EZO5[>%8/>U/"3Z&@B_,73.$]7^Z.P^*)>S%CW[ MKEJ6,YI!"U>,[8)P-F/1TK%5W.8?T#395F4VV!>B60>66\37LW@\I,ZVU@FV!A2J"2^D MOH44U&*LR='QS.S]SER>*+]/,^H>>F&:LJ +KVBL2"'034!-'IC=I;#62T(6 MTY9A=ZDC&GOZK-T7.]$.RDXKT;!ULI,RT?2 G@Q5-DO6Q<+DE5>%P7VZ.KXN ME?\"G'XIR>;@H'8^\F@46%E,:]0HL&153W] M<5Y:[#>3\C$3V ?.ROPO2.!4ASV?I_PT7=[GLV5IL^F@5%'Z/?2@TG1]GV' M+A4:S!A5Z[OE4+*1]#X3960AQ7-0?4IGE'.8>PZY1-/+Y7=ZY61">V9E9<&V M:'=35YU6%5S.=[9VT$839J?P=)C7_UC'I@:HCV29TU+(\6F+:2EVN[&\O5UD M]%O&6]H?WN?-X!$[OR>/$.\A7_ MKI)7CZ\&64;+9WP;[SY@V;VH0E).:?'W M15)-+<6"6.9KN*$A94]PY&B:_P^4X?GVZG#S.G=:W06@@?48K97MNI)#(K> M-%\SH85O-?-E ^#:XID6GAKU[7!L,&";"[HHJV;.+E<@: %VS>DB8)%]GZV? M;5J8Z8VP(ZW-@Q]L6GW5]:\DPI:(U&B-3*DQM I*)A20:QG@!#C)L3=P:VIK M AO.S"0=>SXE8JX:TVC,_$_+.RW\+.;84:AAQ ]&L]*ZW/+%'(]F.9L'K=P! M8C%#7T*Q.(=P,)"(Z+UA\QSW.EB!Q7<\B-S'9STSCK6*SB"W14J3$S]J+5H; M5R>+@A8M*.5JJPZ6:#P>Z5PK%@G3PK/7-#M&C>SX@=JGN@:M',Y[(0\+R^"X M!6\O*FTK%1X-5QT_ K":S7* JLJ\)T U*JY$K\I=GJ $*_HET3$K$PB>R3G* MU:QX6*?*H.1<2;URID6NHYEV!/<(P8]D-P.40(ARSMJ>R8:6.2\2M+M'J0\[ MV= *0'#H9#%LW%T$=&D$A^FM"W/71<$B@>OZYG5UT^@LEO>(,MC0S09&LH^2 MY3<\?0-SVS'G(P2A.6;:1'O=QG^&-,2[O-0/&0;"?RX9I\*/A2_F*PC[S(^2 M".YG+H#$%,(W0(#7>,G!AK6B)YVYL<2WC-9<7= 5"2,@H$5,*!8E>S&GJ'BQ MHO?H*6 Q;)J*;VEX9)+ASNE]\X0[I,R*8[=3+2"V2X"/:*=U->\6UPD M*&&0+#;E^6%.^5R&A98W=Y!A6A@G7#>D-)()Z2_93"P5LB6'/ 77:)<*OMK/2LLG"L]!S,=5OI M603MP4JO7_LNP&L.C"N]QIAS'"2?;1-B+:GGVVY&93NWW!0Z;!N^%AV5FY3K MB>E]RGGZC&C;MFD&I&Z%>09L5S"O->NOF ME3/-T(L$KF <_ \[;V+!!E.+&S$'YBP4*T;XX2B)VE\T*(M\K>JA81@O(7/A MV4LH;^?GXUP.6^D]BNZP(*TGIO!#:LY0>Z M+FZB?&5E+71L/Q+='N0.Z9&6F((AK48MDN;%ROZ>D$M90^46A1M0DY#1D:?)EUZX*I08FO M@X/D*=G'-!<^ 1=<-#?R3UD6QFFVY+2OOQLIRR?P-C*W"DR\?$V*\T*N_Q5WWX MD-4;\0C[I_ M'EE1?7WXYF+WP)&L8\&F,O?=E?K&E#^\(NOT%F?U5;_JSB!)$_()4K% "GCI M<8GT&S33YU%N@0GTPR&])X =!":E.X/>W44:)!EU4]=;EUGZ-> M/-V&CS1:QO1J=LD2B%(5TV26GP=AFA0LUKGHJ[,:# Y5.,N M3/_TBA1A[W<0]GYT@=IH5-T0A!$:F3W^@"9S5.G>" V5XC9T<8UXK MJ&F( #2H':.UFE^REB$'ZI84U#WO)7T(X@]!GE.NF-][+NO&Z_4<=H@YK7-7 M%T8TF!VB;1>KW[TBDIV4%SVVTL/"FRH28J_?EP"3KZRLD?_]*[B?;PH@Z2/V M 2$WA>L7<(R4DX/$23WEOEFPA?<.#"A8SPMNZ!--EO1X]2'X1\I/EEF>S@6$ M[X1(8V\S3H0WQ(PTKL;10'X%PW-"Q3[5 M.ZD33>23 \Q=1TU.#,@X+UA03[DTAO5'5]#*$>% M-SQ]6'7L=TWY[6/0VX&9R7V"JD_I)J!,M&C U*-@%TCU.:V@)Y(!7X_5-:FO MN[+03PDK:T=E)$8+K-XNZLTKTD)7_ !F6_NJ&QA"N]&$M%XP%;,4#-2"89#R4%*%G+$.21:P!E2L]ZDDJH?@^;-VCB; M+^)T1:E,AG0MZO]14$"T1IEE9G4GWV=R/GK>4BG3'%!OM8KTQ]A;*0*-C^W& M+F4D>B?F\*4D(D612I:,:]N[L>BXV>/T!K]O*A7E:&2O@E'#D5XD&E_9CAV* M;_SA5>D25PN9HQX< LWL#&+U\E7?]EN'R.ONB%;!UI9(BP(-FK1J*=MJD@C? MI.2:E[= )'+[0WH-U'ZC=ZTJMP-UM:1HH&/73^E@WD/\;7553;)@Z5WN(#G: MDJ^<4&0B]@DBN\)-#.DIT4#(JIZ"H#^^(A4#+@ UAV&9E2]GG+:CT_LC&=TE M>(YC'&I:)XK1E1T-*(?KK&[75BSDF"9TQG*$^[3K-9><,D+T2:6UG/L-7+"[ M"9EF/3[$0/URVT4"&@"/4EOI;?\$V[8UCC&MC\\#QF5JQ*M9F'K%3\E MRVP9Q%H;^[I$1UZ?$!QD3A.*3HQH(#E$6R4GYFNQPM'#$TL_^#'(Y3E/^>I[ MFAA?WM$0>GUAQZAHZR4=A0H-D(RJ*2]B2$)8@JQ)L<#E1.@BEE&1U*I84/7. MYJPL?G<:^Y5O;RV:Z=' RD%)-=<.$PO;!22B%B!K"<""L]OE?4;_N13SSK.G M]=K=#7".O'Y7N /,:2]Q'1C18'&(MNHBM^(E!3,6*'[*1*==)>HSC8Y=(J\3 M,:V"K1E7BP(-7+1J=7$AB*"7JLFPP$+_LH[CD.C&ZWMWP]F<_J>1L/900[0U MOH8D/S38L4#R0\ _TQR.7FYIN.0RB8_UJ,+&X!-\_8HW$6>F1@.S7A4M[P<7 MK[*C.FUHO0Y1O?*P?MK!BC%'7K_!+0/,:<>Z.#"B >$0;0VO=$@<*#"IKS#.!.V M7K(9O4BR)8?DW"U=NH,Y(C0EN? MCN:4B7@V8>3NT"4+[LNT\0-?A>KC]/XTE)LIROM0=C8TF'/759MR&!?T]*D< MBNOEH@L7WB)Z8/8D\SC8N[E1DOQ."$>;VIX=#A:#!KKC=5>@#%<[#Z4HTI2% M!=%RY97K)*']=F2^W70$1*GN1LZVG3] M1='!XM" ?G,;C,>4O&8A\M@='?[KDZ^3)>?BT\"[SWWLTR#;S2@]C.V\"#'K MI+#QP!,5+"_3Y $>[:H?%[[B8@QZX,%\P.IMJ!"OQTNC#&P=,0V2@ :NH]16 MG\>JWJ>F]?O4M/$^];+Q/G58%43@NS21%U*W@G7#ZS2*A0V[;'WJ4&9O+](, M-JA^B\:9$O0?$Y130LT ML_:9UC-M-;%/CNGQ.G=1_0'NJE)8E%&)[53&@3*44UIC M&-CH$#YLP7OCPO;PX=)956NH'JVX=CK ]SV<=[=JOIO7/^!O)@_-(XDN9CN_ MF&@3-CEHMV6!_C#M?D7F((B$I20"VB/I49LYWJJ5'8PEY4EU&1119A\2.F]A#_F(0L M9O+,<"#RQXBDHO.![GN/QT'&0@@D9?$RA\H9-DX,DS;1$#'& M9,/H,$040A\8H[_Q;5FQS(7C%'C],Y-/S&+::=&'836>%CM>*8_#'#T'/"HB MM;(?!6&>722BIE@:_439PZ.HH*,GRH,'*G\\%4-Q7&GU*(C%! M6%>(C%4^7IV]4!ZRC%YS%M(;Z#(&P'YG!6-ZVG)[%3GDM0:AR]553EH4@G*LDA=H#*/]N(=H1TBPTU^I!!+NWADX1$\$R@6:W#G3*S0ZJ/A<\B2(J_/A["C/.;N7^T!I(3@[@7L+?'4U.TWG+&0Q[53G5$IXBS&8K(+K MP 3O&DSNHY.:K83SU$7 CG^>@H=G,BPB6G(YNL$^*$LC./^*1&E9SL(Z4F+C M_7_??B]6O90])$7M,"61M._"]]_/316Z>__NEOR%^[7!W(W\F;XL4I[OW)O5 M5%=78EY_Q^:TU/9J=@>*ZNK3G=>;+PTUIW8%5T8<2!ZHK0&(@$)>IBSCA:A? M:42>6?Y8XG(=B2]FD^19^,ACS<&R)E/Z!+%Y0@%O.+T5'A.#O7*B*V!Q=1^S MA^*1CQ'0'2!N0C0/-MH"<&=96#$_U( MN %\"EA2=-:9+!_Z[$H!DM8:(-EJ M*/9=:"PD/_Q($\J#^"B)CJ*Y, (>?X.(J3(TT;!<'23!>RZB8:8I.8G%!DP-0AT,K QKDN6AIS?@7-3+^88*; M?D]Z4 P#AO 6][@3-)"RJJ?V6Q#E=2\34H4-2D^+!E4]"BI1M=M:7V_O^4@YU5R;<4-AQAD\T-,EO4KH?XDN M]8I?TLR$J4$2/#\N.=2TSEN3KNQHP#A<9R,^R>]_]]W;-V_^+)8H.63Q0[/" M4-_-^9&G65;F #)43!^33URZ&="$HIW#*_KD+J+M"-Y)UR[J) D)U-QA6# 7 MQ^DS++C/4WZ:+N_SV3)6#375B".S5PP.,JB%12=.-#WB('6[L(1^DM02Y)YD M5,JHP;JC_4>Y\EXK>#9?Q.F*0G=>=,8GG$:LV]L-XO2VJSC,E'H#T8UM1J:UZDFXDEPHU58"YP6)3[DZ-3K0@=H#EERN"BHL('G' XS'FGT8YI& MO>#I$$\"'JW"6O"T*/&!1Z=>%SP5#7D (FS8D0O7/C-+HDFPTE)0BQ%)@6MZ MH]5-OV=0Y[[#A@RX%"I/#.!4BC\IX84N#),@QJBX%CT*-;Y>QJ2B=K4?M%;[ MZ7TFBLE"*K[ !C QH>^S7)), J*&P?B M'NYIICE.)NGG/596?%V4D[[Z%,>L2" ;&9,:[RHLOTJK7.5(N4H^K8OOQ^!8 M(?["Y,<:N YW'RIAB@U=W,H0WB)FS)! ?D'=.3-([E/WYB^2-+RI 2=2WB MH3R_W>V.JZW=(^^H,&R=]F[-'/0D2)+FT@LIECQ&.ZL@8^C8SLKS&_2WXVIK MAPCNJ# <*F?]"6=?+0ZX&KYXUCA7@;SD8; M6(]1@R7@F*F-55O9"%S.[RF':WP5,V$)691,.X+ET8.0_B!\H;Q%>%(:L!%, MMR#4&VRW5@$UC#>6B /6VS)#B4NKY,*-T["X1U5(VS7$SY?YDM/R BX,'S?U M-5FX8[$-P&^K"/_PWV[EJ,ZP'?G(7&.K1ID=)9A#?!WA=%YN2 M2\MD)F)GO[](GE(6P@2MNO6AJ\,=%N;->79>8;4;[:PD' ZU:_-<4M@\05%P M$BM%P)99E;0&R=)=!G-KGG@T+*_,Y-ZS&UB45E(9:&@GQZBC@@.?U=Q1+VX, M4#$BQIW-6\\ZP(BZCW3@\8.D[PLD);(CBXQ[E>[Z>@XIZIM'MU/8#)OK'.77 MG*4-E1,7?U>[/>C_(>/YFG9%-KIO_F?OD)INF_!,K-OFP@;$V MU.0F2L8HEI"R^ZGR^$$'LUCO216E UU]P,@@@P5H /,IVQDW"7)"82R<"8G" M)+(2O]@Z+"_7)CC+Z6GZK$T_HE+]\A9;@G*+CIK'E9]8!BE'9*NF\BJA&$M6 MY1"24W31B)<"2@;#BY]\3FB;RC1A M]/WN-HE%'F#N(G).UZO&0QI+>'_NIB M+CJ8)YD /+/=?NCA\8D$)_6;$+$RH,&.BY9=4-4\LM=G#2XD4/L0A(\LH7S5 M?(?>AC,;@T^0]2O>1)B9&@V\>E545]$E0S&CJ%B0 .M\*>8UL DLS#EG+_#) MVG]9Z'W"JE?M)JJ,Q&A U:=A%U-7LQF#A7/%AA):8J8FYM_Y"AYDRIO>(K>A M##71Q^039&X&-)%FYT #-R.<99X6XV/.E^%G+",CS >;P[QE1MDF\SWI MUBG9G8 W:="@Q:"8;F*.<>ID!+MMF.MC0M$-&0<\.P>N*#HG7?67G!IH\=N=#=J/F>YG,^=I[R( M%SL)%DR 76:=C^3Z,UN_Y*0[0QHAQ.,MII$&-JXF#90P^0BSD=KJM81:CCR2 MF4E))"Q$%8GA2UG3C2HAI9%,1'X<))]/Z;UI-%'H/(\B/:MVLWJ:@4,2$Z@* M N0$Z)$,&I!GD>R2CGJ_6SUP.JRBYF M:O2Z&-F'8)L,U"AV4%S9GF\\?7X?Q,639 D1)1H -BO8Q=KGY(PI@%D.@H?*9YM^>LT9N'J,8TC MRDNCC@M/ !^[R*DQ^Y83I]?]5W=36K/)?C8TL'/759EG-CA)R4I*7O(S"M1'RWC]2O#QZD/PCY2;GGQR9?*V_G0VH%YO]G),#JM!:KH_SYRG M)&,/"9NQ,$@@Z6#$GEBTA*Q$.WZ>N<^6-V,JX TBE+T9C+(W^X&R-SM &7DS M$CJF!MXA@]G8PS*;??AFDYE9A]A;)7.X"@OSI7?!2OC-Z3!,Z8SGD-F') M4BQRKA:4RTWH[.@^D_E.#/.,49+\9ED=;6H[YGZPF,EQOKGNI@V=/'B!L_HR M;/_K^T+@-S\@@7>IYCF-X"%GQ7!#-?5R>4WOY&9"*TF3G04-'-WT5)Y'*,AQ M(>PV#W*(\+P410W%61_O!&AS,T>#.3LC-N0Y::N\DYQO(5WE=M%GZ-?MQAN9 M)L!;CP$:H!DX<,6%..EJ2,:K&V"1H.Z4SB@D8-_>Y'$CB7ZC3C8VO1VD,EH< MFKYT#=$"V<^*+PQJ@->YY:&5*:THS M#I%N(J; Y1#C=.ATX<>*T0&Z8YZQUIH7)_%PD_1&R,++^]34-PK&E4-M":2:22 (1TX( M#08>55M#T($M(>O'FE_T:'VUM9TR)NE;MED]6L!OHP!\/=<6K=*$0B^6N;(F M"<0*_9'*2&C(]4ZR2B;A",?<=OWH9Q269SL'2D'@.7TF.OB&201V]/?HK9TC M0@(M02!DL_06^66Y D>"Z[/93'@=>Z(M!]9M.)0_M6NH9T]J:])] M^L&6JZ3I'UL2C<9OMFN/,@<3WD)E"3*?'.7S((']W(B)+SFDPLRP;&,9.I#U M2@!R?XI&>AS6 >GX$0P)9K,Z&BT& UUXC1_:KN/+CC51<"V4DH'5?R&Z\$L:Z MF;'9?@4:< Y6N0O+6D!S)P_13G1UF"TL.\HR6F9N=@P.,S%-$8E@-T 7>Z#G M0 ,])S6M@5J!9,.RJ:78(SY4WY7]>_FDC3SH#D,N5HK94?5PC5@#GJ;+^WRV MC*M[VZX5MX6")D7TUBK*Z@4;EX+7<[9EFI*EM_6J4E0RP?,HE#U!2@$LLVBE M1NHW0%RKL,$PJ2\HBELQ75/CQ6971=VQ1?W&"@GJ)1U69#GYVJ48R:JOM^K$ M;<'X>VU=16S>2S>EXD7^6%/LO3#:AXD<[(>0%O%W4":<+<-CLOIK&HGIG]R= M&5_'0\I YC_#JV>@*[D7L$]>-=@JQ<' %\6:XBD(MY+]='*'LNT4;BQU/YS& MN(^XH4BLP?J;F6/RB!#2L680=XAVIN\TROX4O7[W8,VQS&&267'8@ ]+ERRXA]3"C XXU=(R380MBP$&C&DX,,XRS&I:3[7B M-1O"HZV&44-?F1HL97I #GHS:J (/Y#]OH!L0A]@(\2Q@QR@OA(/4#Q\#T!V M?0)JRC&X\114WW@A22<=?PWO5NGHD(^]:PV[^!&_#!UW,4^!IL\XZJB@<4B" M\[F"X8!(%JRN?%?=.SD1:_&56 \!SP:LM.CY9YZ 6HQJ6]-J6'%BT:KOJ:K MHT^T."MNW" B89,?"5:UQHEE,"MBZT[-J06<.'UB=( I37PZL*'!IKNNNEB& M@I4T>0_(FIN\JO9G(')FL\.W,<9"PT5-9 M&3ZA.LJ\)F@'"4 #WS%:*^<_!:\\_Q&8S20O2=?,2!!\D8A>'T: (#Z1JA96 M'N4Y9_?+'$+4[M+UCN)UL +B(]BK?["^\+X-P9YO6&RI(CIW+C:4BL8KMF:* M[L7*M8O ]C/((LL$WK#)&GO39"'XL,Q(#)W$*8LAY8S25PSK:LQ2$'3_?28Z M# F$;@6W>.4'SP2P )].81[*]>IGOJJQY9&[+A2/[WJR5$E((T@/9X(6$G!(8DPW&:7)]_VUH:BIY;\=5>U7N;&35%XO+=[W8:G3BIYKZ2_;@4WB! MD2:1;_]ME[OWWJNKQIW[;K/0+]MS-98:_38J:R%;_95TU9\T53(_OM>CV7V6'9\YVU;K(?.]O39"^4AR^@U9^'6Q\NA MI>^I9[I4Z8[\U5;TE^C%#O8J5\1*%A*41RJT9"(+X(*DW;\)Q[](:MV[S![!A91V +-)$_7E5;;H5!T9B(%8,@-,%%5D.=XXJT4O X MR5C5[;L\%=#1 'K3OJ R?]+!;: 2>S6^C:K@K0YQ@S3 X\!3F+W!0+=W/4-O M]56WH.H*W-'J0EL2*A\?7U7;7&%JBMD?;QUM6]]X+/CVQ^?Z^RRE&J89CP>J M@"HU6:Q/CI;Y8\K9KS3Z M!#?3&LL5>3_A>-6JHQNH^SNXR&9JM!T7ZM7[O51@R]=W6B(>S_9AIC*8@]!# M&7I,RLZ"-#J3 U+(ACOYI7]+N40*)C]+T?^-Q;7'5YM::9%QWE^9MV65!/)'R-_;;/%A%TAE?OR]=$;[9VZ<'9 /+&'SY7P? M_._38N';_W1%[J?_F2MO-_ZGEO<%^I_1R '^%[QLP_\PSENKQ!7E+S _+Q?^ M/N8NMM+W=F;;7Z4[F^J:BY[Q5TF *AG R4NZ78ZI]UNR4K6NLP-W0^>! MF"(D#_"T,&3"7@8QW/BUC;XXE/,[3N.P63>B8]!L\BX"974HLX2*@R1U7X+N MPKRW^FNQ#$MUX4NEZ9-A^*W\_G09?O29O#M!5 G&X[ J 5Q[[VVB?.R;Q@1, M=(W5;Q9XA^>9=F?B1M/9_4 .UFN67S+*G S?8A^&9;.RLS5[]YSZW@V61>[G M9J6Y\KP<%HCRL'BD1UM_"V<&/MQ05^1^NJ&Y\KR<&7S1;FBTU?O1 >IM1IO# MXE#N-[;-:.P$,&B&K[M 5"O>=AM1="@MEK?3MT]7GR^TV]!7^T0]15N9WW#G MH*V(?VT<[G!7[1VN)T5V9Z M)+195C,NE-ROB#9TM'ASK2Q3?%B7>D"*\N!U>O"OOO]!O9OZO*S_? 2X85AVU7>XG;0 MY?!%+8 MD0CEV(0)"EL8D)\"%L-J[3SE$OD['O_5XO9B+'&LM%W,!;MEX7*AW1FH'08R M$E3D2/SPFJ;T" <+*-+EGIY]M MNU*:?K4MV6C\:,L&J0-9(7Y]:+?.0H'&A^B,,TR)9\U;!"UR@:,GP!<38ENRU1T1;/R6+Q M=M%KB?K @_EE&B1B5?D@ILX);3^O,%+$+U$:>FLT4=82^FDY MQ=>=W(_67YFQE>QDS4]* 00DD(:( W)R='-V2X["?(IFO\H?Y8I( /!LOHC3 M%:5B1(/U49JZ('^@1X7<1"SZ@*^\NN>-F) MJ%WO8 FXFGFL^HK'5G((+07!*<,B36!Z+H\(=?8]PFA)N'"QJ1G*%@[$TUG[@2F:_9C% M\:A6=F7$U:@#M>ZV8<5.\I1$$%C0ZN-'.?]DOGZ1G+V$8AEP-7.ME.KM[[OT MF)ZD<2S_\1/+'UERE=#_$J9^I.KD;Y>%X0*7!TO5*#L+Y))4C"=""?$=)O39 M!MSG=(-)1I<9%SI&:#ZHMTF&%,T=A_6P9BN9.OKF8-)Q#(_P=M^=9$\ MI2R$.=?),LO3>?L*UVY+P@6T79NIG% 4Y05%_@%YR:Q\3YV5(F!Q%99"4&%/ MV"@T3_D*JD96Z$UQK>6C8%QR3A-U]>/ @PL/[@HK,Y2: )JR$"*;M@CR#^(X M?8:0N$G'HA+E$ZT-U7FT@,8G9 @]X#@B G5/PB MR!9@DDRI,(4;[3)IU!2O=Z "O1]CNUB6A"0&HG9"H/K"3/'BG;P,($&=KF]0 M%WA=9PIH7^U\]:5!=(J<<;\9B*Z-_1=$]^L-EB\7HD9CNQ"5A/^"*-J4?[\9 MB)I[T2\2HI.G0L/]0@8^V".J%GVN*KY^\[F3PJZQ(YJGC4MX__*2/4_P^"\O ML53+;\)+SN01[4\LHNM#^:OD1PI;2HM'%A[!];OUSO75K-P!@MVHLY><\B2( MJWWO["C/.;M?RHB.0G!V H%'7'J";VVU?)OQ&P&LS>"*3T99'R M?&*(MK?QH5ZOQ.AQQ^:T/GZ4X;$*PEP9<0%DH-:&]FT?QMQWC M!^HU* I+4&OH%376H]RC*:9R?J\;J6P'.6AY;>9>/: M]5(B<"35 2GI)JUD<^VBJ]:>^B0_G])9L(QS<@G<_SU1M5ZRX)[%PK>I#< J M%:+JMBBG'-.L2:?&LUP9/Z:Q6"1G9_]Y.>@/V&IGZX+DI4I M,.OIR+0\B/S&655+)R?WL0KRB1KI1YYFV35/9TP[L#1^1E3U.JVZM2QI2$$T M4=U>B6FPF/@F#T7^!LC.H:MC#1FBNK9II^0LJ&A)F17F:R#_9J+J_Y@F:5MY M2Q8O(S&BINC741-/FRIM4C)-U2QK',%F%AP:L&0I]"O!DR99,?]HI"(Z>Q%K MS91'+ GXZB*G\PP"A6$%FLHXR"I/E:YA=U@<(FCXL+(+KI:/$VADLBZ8K$NN MIH,EO2S\@+0+(U5I$X'RM,Q26==/Z23'-*&&H;&'!1$X7#55TE)4J3O7+4=* M5O)UR3QA+P)377I*B[\ODNK6 =/G\[0R(&HL-STUOBBIR=<5WS<0&]Y@1=-. MUYQ"FCC+6-S'@[JU#*HZ-EC)7;D9MD:3??>@)I,<^]!@;44'-I=D1M-8GY(B M9<,Z>9ACFVD843>=35_'%JQ$-#*MX6G(HS"$<]SL.EC)W X\B!P[3!TGZJ:T M*NS8EI4,4@HY(%(,FN:4*?WJ-7)C&\BM38WLJ!NV7VO'UBT2(JZW&!JB<+6P M@"%?TFA<^ZK,^%O7HO.@MBWEH&S9\L9G^\+GU4QW*7>T$-0M[:J[8XN7XN#C M67V!%43"WV?39+.K]]EH?A)DC]<\?6(1C8Y7GS)8/-==SU&8LR>C8[MS(VKO M$4HK>XTT)R"#5$+@';ZO08YHY&\:'?=:UD3M6[X_E=VE1^$_EPS>?H-=TGP% M(= Y7.(6WR[FAK-V=VY$[3M":4U><"D"(@)+(:22.##7HJ8?F W&GK-$H&]L^VJX\;>O3>F![5N+FKY] M04OX'V8(3V*T$+W.C< >9Y"N%GX0$Y'V%PW*XI%F=6$"67&$=6(5\0CWU6Z" MG)[-9C34#NQ^-4"$LXD,5]+/"L$'!5H;\@_(NNCB1YA'=K]K,10J$))PT<:+6-Z-9.;'88'(#\A5XQYI^29\5<0!(*;$3G';E?PLBR50+I$%3Q4)7NUNKP\J9(B;[5J# ME0,1#!P550+UJ_W^-=]!%6QR5*4*E-/:XJ$< I$J4\>5J[;"%&!((Z[I43>A M1DVG!@QF.>P%8VV_.KFEA*A^W[=)@:B-#(JI.[8EV0&1A%-7=.=%"-WO&"NY MJ9:EB@79;_6MGG>3-]J6#-B/=WJ^G"=;, %GUS:.?*YEJA7^KJI$NYC?56&( MAI/=VZ@'6.M M.1IGTG8.1%[JJ*AR]-(^/FV?GDX[^SZE"TY#UDH]T;[]L/X=44-HU5+O-:R) MD/A&V:\.N'YBYT#4)(Z**L-0F0H?X=V3ZE[,.8TH#^(1=X;LG(@:;Z#"QAM$ M)3_FUKS-Q5Q:]-V7:3BJ35WX$;;L(+6-[2NER/%+RL'=VKV2F+ M(1=KD6^[$6R@:[2!(A"UYUC-])"2#->XX"4\O?^01,$ST(A MV?CT9:;R I\,#&L]8P)B1$?S@25LOIQ/O#7T13ZB\R5BSF+F ,P%+Z@PA^'Y M"#TZ,6B&"L>H*D1]Y[1ZRJ/[R,>HISV^?']HL;R=V 7:RB"8?>*I VW8\41* M:;RB^=6E^"2^KKX2?X">XIO_#U!+ P04 " %@QM3Q\9@?[\R #J2 , M%0 '1A>60M,C R,3 U,S%?<')E+GAM;.U]7W/C.)+G^T7<=^#UO)U'WC/A"67Q7W\X.7[_@T?B@(4T?OSK#[_>'4WN MSJ^O?_"2U(]#/V(Q^>L/,?OA/_[/__P?GOC?7_[7T9%W14D4_N)=L.#H.IZQ M?_>^^7/RB_>9Q(3[*>/_[OW=CS+QR]?E/4E2^:_BI_R3OW@?CS\]>$=' ()_ M)W'(^*^WUQ6"J]]@).Y2/\V25?_WK^^+_^7=_Q+1^/LO\O\]^ GQ!#1Q\LMK M0O_ZPU.:+GYY]^[EY>7XY<,QXX_O3M^_/WGW?[]^N0N>R-P_HK&$*" _E+TD ME:9^)Y\^?7JG_K5L6FOY^L"C\AL?WI7#65$6_TH-[2LC2>@OB1K>%Q;XJ9)P MZV<\;0OYMZ.RV9'\Z>CD].C#R?%K$OY0@J\0Y"PBMV3FR?\*V:R^FOK+B/&0 M/-. ),OL= P[I[$A@\L2@4\\SE/S*:+FV&J.\]T'#/_>3I*F(O MK1IH[-3GX++YW.=+ 05]C.E,*%*<3H* 97$JEH8;%M& DO;16E'I6,6(H1##2D;X]#O>%L M07BZE'B)F68A;;MMB*8^?$.?'H?VA3SZD8 A M("2$#$O7OD^T?,#DLM&HUVE$KJGW_FO[$!J:]CB0TM1O"#]G\SF+U5+:-B9S MKQZ'=TLB.2$)!RE=WG,_3L0$)/SB5M#:^O6)H*#!EH3YU(R8QP3D+UK?8IM*EUC\.YY\1/,KX$ MC::Q<:]JGU*NW$:((C6W[G$X5S[E*@2?SJZH7&FI'UV+L)5GRK-M&Q^P>Y\. M4NEIRV0"GZM8NM4+,O3I4[0T^2Z=+>%9"9= ^BX O]S8:>]11+_1!$Y4<;]K M;'$_>(0!&Z*F.5ZT 1OV3D3W%'G .(%3&#@*@0VWO6??/C9L7 U-A_&WH6:E MZ3"X[PT;'Z3O@/XC4*;&7@.O]\!YJ+7GWI?7"R)6^"CYYG,NAO/H MR^UZE51(%E^&KK7FWH,MM,!1&COA+;IB#EBP6'K3-LST^A%DCV,8EAUC](4- MR6LS]7TZ6T#&;.G@2:"> +OW/6!K<$V=!HR]P)Z6L5NOV=: MQ0&-J/+^RP,/XLOJ^)&XU ;D01.0'_:C,?%82 MGU";M*)B&OZ"DT22D=V^B!\VNI!7$2N&)"P)20ZLCB:G-)4]BB/C)]Z1/%^N M]IS%'_.6Q6C*\40LV!A"),]ALZVSSG($B1B".FV=D.#XD3V_"PE])T&2?U!H M*:3$7WY7'YH\)"IB+RE%_@.)%/W?19NM)N_V,*H2"1F7- ]JL\7VF*J2F_# MD[+@ NN2EL^##7G5CZ<7+=XMU.'GH^")1BM1SSB;Z] ID&":@5:!$I_8#YH3 M\?U0CN$J\A^;X=QJ L3S! /01FZP$+T@2<#IHGH:0P/L1DL@OJ>H^#;PMF>8 M2]NY)8]4CE<.975DW3PO:+H @?^ .5,8N462P"2.,S^Z)0O&6X#?; G$^T=, MO)MX0X+Y;YG/4\*C)03I6F,@V!\QP=9PB(2W.GQ+)3X0P.NM@8C_A.IX:'A$ M@OSNB4213,OY,4C+F]H#8?\9$W8]GPX ?RFWM2[$T@+'OM(%"/^?78&_QBV2 M!&X(IRP42SH'8%]K#$3]$R;J&@Y1\;Z,0RC:JZ;@^ T8A\R^8/Z\3I)M;U5E",48).'5,HV):9AEB543'A MN]T2BC%*K&EB#@7G_XLL34#7FD*11HDQC>RA0'W#J3QN?D># M]DFCWA8*-DID:680!>U[__4Z%%RI<_T2I';0M5V@V*.$E2!V440@3PCQ!:ND MB\_E106^/&>A<4IOZ0@5!TJ\:<$ZBE F82C@2HK_?*$Q.3&)HK$Y>(\(3P & M-AV!_=0.]E,X["AQ:"N;CL#^P0[V#W#846+15C8Q83\7?YSR>_:BV8'6-H9" MCA*+MK"(";A:::;\AK-GFE=&;$.]U@,*/6*(:F865>'S11ZB[65+*-Z(X6HS MRCFB(&KB=%])QASNXHT583*+XHL6HC._N& M5$J8$U^OOILMH("B!*!-S.P9SR],[GT\L=B8CZVW@N**$DGJF-KWQ"M/$R=: MTZ_\,_@$&\JTNLW&GF'\C=-4C$!>/CV173-(7"BQ+^&=G;,]1WJG*' MK.'Q57B(G*Y+0V_BW-0."C)*L*=G;,\(WW B)4V$VZW.<B;FT.;>1]#<^V@Y]Z)$?#JFD+#- MSX8+BYH^1/1QHZYO,\R-'<#W;# 1-["Z[_M[ZLI/Y5;PE?A#,^R:IE# <:Y( MFMC;-]192%,2YD-:%=A>/SRC0;VU%U0 .'^(G["8 MA+FK;\KP:[M I8"XA]C"+HH(_LZB3*#$U4%0KK$!35,HY(A[AQKV<,Y>YH>: M5VM/_FB?"7%=#RCPB)N(9F:1SJ>E1(Z9/I,+/_6+$9KPU_6 XH^XH6AF%NW\ M/#\7"\\C,^^9;S6$HHUX%+:1-120[^9^%)UE"8U)8IQ;MAI"048\\]K(&@K( MEW/"'\6D]IFSE_2IN-MI EO3 0HZXLE6(ZLXX+^N[Y'G]]^,R#>T!E"RH% ME' 5RC3.VEJYR6]<6C?:0?%&#$R;&,.Y,Y4]1#2XBIAO],LWFD'Q18Q"&]A" M@??,C[_S;)$&R\J3H2MK P1$0 )0D2#&IU90X*0+\JK%LD"G*EU)J3!H8 M^T%%@WF)$\ XDA>4K"]ZD?!L>2M+OLIC"O?D-3V+*F]<-CM%@.Y0^:!6% +# MT""FO[RK\?5%_#!LN=,S/Y*/:8AUCE12WAME3T^](V^5%E=U3^.$1324+'I% M?Z\@L+/&S?SD0?7^1JQV)TJ3\1>G?T?N3HZ*6;/'S[ZLA5MX(O6%Y MH& HGEITA_7>W:*Z\U?4PV_E9+L=5MU5*V W#4K#R0 3W*[B*)9#J%1JS=&* MN)HA;I*#AE5'Q"&K2$_B4/Y'/E'S[$=R-IZDYS[G2[$\JM>#]>(!=D>K"0N2 M!.O"DE-25*_UW!,^EX\Z):EN\[F<6AI;HY6/[2 C$[^.B,3P@/$WDNHCHQ(- M6'>T&K0=A&:%B"-27#V2=N-S-?+UHSMBS-/9K8";/Q.#L<$IH)6X[2!+6UP< M$><-)PN?AI>O"Q(GI-4(-DHEZ":A5&T0JM3&YW&6SPYPCT MZM7+Z_CR502WR71V1J-(_^:ENBK_R/VY04J=":(5WNWB(NZ&FB.RW^ 8&($A MENKM''DUP+XHGU;ZDK.K'9H:5\I2/U(M'7%&OK$X:!-;8V.\VK\VTC/PZ8CI ME ^[RL>CTNKKKL+Y,:U@IEYX18)M9 /AW!$AR0C^3JF/ $Y%[=/9%SHCUW&2 M<;^YNDTE!]#2%:_ L(VXP!@X(K/:.Z:06-G8":\JL8V< 'P[(J%\>&WN F:E M8GM'X6 \A,J3OV)N5AN>3RP20"=RGDZ7[?EV. 6\,LF[[Y#8XN2([56&#=Y M,?7!J[_<50Y:,;J]R[+*5\M#(E^8'TMVO[&4)#?^4F9 \RL[]B!&, MCB/2+!/9Q>C N?SM]GA5H?N1FQD'=X3%,Q+>^9&8)-A\3A-9PPDB,U,WO K2 MO8FN'16W)%B?[%NEU]0%K_1TKY+3H^&(U,JDZ#I-*K.FK9)KZ897P;H?Z8%0 M<42"-@:WBZ4-EB'IW;L\F#BQ2V380RPX0+GMGCS0L42 E9/,;2>S:BWQ"G/W M(R0=[XZ(9A*&*O7@1S<^#:_CI\]^2X@/%Q1*"W)/5I M3,)+G\=RS1:>5S;/(GE\^X+,9!U-O4 A??&*B/N1FQZ50+\6W@W"MHGDM*@4M=\ MXTK>!_B5/.]/&_3^[>V*WEZB6@'ZE*L1AVHUNB%<7=D%!;KZSN.]S&>!C2-N M=NVV]21+GQBG_US;ME&*]4[8M_WZ$9\.#%?%IFI)VHBL[(!]VZ]/<6V"X(BH M-ISV?)S J*5LC'W9;P<1&9AWI3C NACN="8+&U2*G&^X(S^:W)$U$8_-O((, MZNES.8+5J-K]#FT'W*3>,XDSD[VL6R [#2V U[)QFXPY,E7)[F%L9DIJ;S3"7N3M!-' W^A3('=$ MG27X3&+"_4CHUR2?U M"VNLM%NT;FR,70C 3D@&?D=OEJI.-DG2G+5"WXSWPO0]L$L"V$FUC?-=C4UX MVZ%"_?W' G/YR^^??1I+#9K&-_XR>"+!=S'1IR10E6[SJ[?R4/&5@$!, )HJ MUI)2%T+8M0" $NK*WJ""4U5 "F69+R*V).26B&A+#NA6*SG@;RQFF]-XJ\?1U@^[!H#E(@9"P1&1=9#6[H(:;%_43E V,AJK MSU&Z45<"*EEZ@L:9?(PL9YO%27Z&(V^G"I%=R-OVLF@% M4PYTN9BWY7<&^BAZI0);UV=P 1R(D@K>"^L[$SZ&,=^@[8!>*J&+@5--TZQ=+M_ NJ.>]ZP&.)]RYWNK79M5E;3 MVJ'W9#N<--SDJ.J>.2$18:]$.5D J53:.B:9#;W2B: R_.IE5B?$D"O3NECH MY)5")-+<;8S":>:DLFOIR!&@KT3S(E3]H$S9%'MK%J1D^O,^FQP[XI1K+DVU M2:>E&_;>;1=)@9!P1&K;-Z/:Q*5KC[WSVD5.9MX=$=#&&;(VZ30VQMYO[2(: M ]>.R&5/%W:&7X)J[N;P-W,6ZE%/,0*>.I"24 SFAVG#,+'4@?NL+EDO&V\%"D/G<7]@8A9];)/L3< )%+ M NX\._]^ZM"J:3\_R^'W,D-?QBY1.#*I#+KM--BQ M*[!0VS:[2#+ UN9=_2R/N"? MSMK%R_K@\AZM?$WA*F(OF@=_?X)OS4I*7D[*A6V9"FM6&[$-O9!]"3FB&\Z> M:2C?D?Y5.$K7\>JVP21(Z7->T+'AA%8[YWW1=Z<:@5;L=3>F1V0=\7^&/?$T ME/1Z%L60YZ.>"7]@"7%@4:W$5O*4IO O M8R1;C^Q M!(?6$6VHY'5D.KC]1J^F/7;:%4GB9O@TED6E0]KZ"5M M[H6=\D22-P1*1Z2^>N+R-TY3#+-Z4UOL_">2A/6P.2+7\AT_Z[LNK1VQ MDZUHJS8(4,P09<37TH=[37O/VM+;_?:QECK6!&&]YKEZ26H-]S XS@2U _". MK%D"$[FG0BY(_M_KN'2:1'2D+KD+! E]EL?;#2ZI)1GT"[YH+DP'M)W5E-(A MHW::L=$-_3:O,YK0@.8!Y%[K?-YPLO!IV)K/:.^)?OW8&=UIQO20U4=54>B@ M/$4_]*O-KJG.!IX'J3B_Q@\TBDC8T9]I[ Y5HT-+KEJA>Y#:M/7\\3WW0ZNU MK+D_5)\.+7EKA^]!*I3R_E?(55YQL=$J Q&H:AU>UM@:ZOIK+P#;*-AK:2@FG8PN>WN4!V,QL&/&/5Q>!.N M8\,?H1[BB.;.BN%*W;/U):D2I,LH/V,M,VF)_5&]3N3 Y^\<4I:=D',D&RWB M@O*R7/"/C'(B5%\H>[J4AWW221S**P4+V<1PCL:"!E3. ^:I=Q$:Z\SXP6R2 MUIB>//LTDL'E%>-W?D3N2)!Q!=\%>;!1FS9"4-T9,$\]H.[ 8#P@!1)\"GL) M" E5O=\O=";>K^5<<&P /0&XUOUH"?M?_: M2 .J,\,76MC9?S5@=,#^:_$H8E_^JY$<5%F&KY#0A_\*0,X5_[4R 9[Y\?<6 MEZ.Q-51VPQ="@,O.Q/!&Q%Q MQ# U*U'#S&*]6C?2@,IT^.(+.Z_6!HQ&OUI+?N7_R_/B1W I!7,YFQ+3,[WL<4/5T*1F* M(ZN#4'&!S!8>$V'JG"\%ZRVE98#=P1=0'5,H,#('4E5H']I@47OHP_!E6WO6 MAP$K$^'4PLGF*3=)[EXHQ5ED#%&@_9%+ MW+2+;/NNN!4NKA2G@EP=V;#"/V];X>EQ:6Z)Y\>AI\AX%3JHEE<91[O)-3;& MM#5YVS#YQE*A0/+L8H.0UJ( F%Y'_# ML;?J@FIJJU&LA]=NWD_;9U_7CL*<)J:5N1]DK:'HN]"G5O11[5 M$LN2!VKD1=UG^D\2%M=TRGEQDB0D36RL=6?"+E36L!P\P.IWIXP\,_2D,)K* M&[L"[LH,\]6GL>@E-Q_*L9L7ZY.3[>GDX[%7H5+QE]U8PM\FCB94NDX+_Y)& M/RZ3+L\L-AY7W##ETVU3_NG8*WOGSD'9']6"M8%8V:4<% MV4+!PJQOEUM#Y8I%WCTQGAZEA,_/&.?L9>,>RH9%?MBVR)^/O;SWO>CMK;LC M+ZD/J=U*V=P>->4;/)$PB\AT)D0L#UZ(58.F5WY0W$R#9'WA)-"719/ MI.^ MMLBX8F9?R*,?%<=J]";VX[:)_?G84SV]2E=4\Y)G@&A^E4YNIJF:68\DECEW M&ZNS)(.:$Y;X?_53,476Q@K) <.Z(QMA)[%N9X-M@'+%+N7E!XTQ?MPVQD]B MO?,[;[!HBDZNO_#I6%$W&(_L8&C?9RW,]41[2T2DG)&SY5?_#\;/LR1ET'2J/^2C#45+#-H0793WSMQYI;:KXJSZI3_I]KF_WNY[R%[>:H;\M9',7R[ MK0]#)^3;^=L# VU]F'JA;WVT"JA^6;X5!%>LI]R-N"&\.!,M'WEL-J3Z*9J3 MX_5VAJ#@Y20\10/5JBILJ<&TFY2^!Z8];8\*8$R&+LB6U":4+3-JY=T5&[HE MD=S9N_%YNKSG?ISXJNRS9CFJG8(Y.3WV"A*>HN%5B2 ?@6GF#'(>IJTGIEGI M1F>U:ED103\( Q/DE@EVP,D5HVQ_N'[#*FMG8TX^B+6MH.$I(EY)Q9-D<#.# MJY&JJTRKMY@+>:EM&35G/LC7FLM[SX ,XHYTW<@T-K]3K56(XK;0\EX5^K/) M1_;T(>RL92_*I,UN]BH-5V:7K=>=FI?ZT]J1H),?CXNY).^K9A+D38:WJ:0[ M)F?5L4-.^^Q*^!"GBI[0=F5JN"FOV&S>+MZ8&&J'>TX^RB,!1<=\BL"-G]6# MV("H>:L=[BY_%7C0AKZF W:R*TKUG OKZ]F?&DPAMKQF).?CKVR MWYLM=!KS!NP 4]"U'X,EF'EUQ1!N24JYNN>I#4)/:\=23GZ6J:&R(W[<65V> MU27VY*2ITC)6\8K8EZ%VMO=XIYX:9&:&NQ2 MSQ:P^]AN%ENAXHH!KLH@7,;CZ-O6%WM7,O)IV-/=O=4?Z]" -70[K+% M(B\15Z\9UVYRL-[8Q3KDJ*HC70SN MUS@@/)5WD'2%-DYK9VU.WPL/5O97%QTV*.#N;#;Q!-C6-'?#M,%?XRS)_*AQ MA #!';'WL>$B&W+[*R <<7F8-5NC%5O3G>L>N/]J?SCO[TYJ3T5=_13E>9> M/\NLYZ&I[=C<3SV_CE3;/!=#$JR$:G"Y-PQQ5HR]P(]+NR(E" B.R.LN>TC( M/S(!PN7S.H !"P[8'?RHBBL2M(+%$5'^FHB)H2R+89@'M]N!"SBZ(IQF1AV1 M0G,I0?A,".L.E-EPS]1:3XDVL#@BRJ\^_TY2F5I=/X'2EO8R]0$*;;BW8&V% MU@Z (Y+:*#%65L!;EQIK$QJP.U!^PSVX:BL_*U@<$>6J^ IXRM3W ILN%=, M;076QKPC,M+6- #+#$X!*,/AW@>UE:$M.([(=./1IG/&%TP$F&3*Y9L>TY>8 MA)#[S!8T@'(=K R]M5SM 7)$LL4E5/F>[6-,K>)R0%=P<.Z,(,%X."*_NR>Z M6,A'..+P/_TX%!]XE*< X#$ZL#]4DN[D6>R0<42OR[=(S=()*S9T\# #1Z2E J O MU'\H2@'9EPYLZPR5GCL9&0M,')%B\\6G_.*/F#F$$@J8Z+.Z]=1JBYV(0:7L M3@IG!\P$-C'O]2QBG M'5["\/Z4$T3=BQ_WDQCK8\DEUNK!!_7T@Q#@ZOG ]<"M#G=W((I]F@;\/$8/ MT+EBLJNDIZAA/&^U8MO_G-JOA1%F!>"6O*A4_XR/VY[6-5=G2P;]4/4DV_ M&YB[1E&:&IRUP52&T#:_2P(6_;&/W_4L34ONT:3XPG869)T$]D&\/YL+N1 M/)AG 2#(N6(LE0U_D\G4BWALOQ3@Q.IT6$\&5(O%S!S&9&E8,F*C5L_5:<@8_E"EA*&O39T MH8J=4-I%'[JCZ)Q"E$&8X"$/M(2;5CD/9*\+E@2Q[)B\_#7+S)9]$P M3:YCH>F4A;\1^O@D6)X\$^X_$O6/%P*#50T[\(R!.RSL9/4@SSFX(&GG7-+* M9)?;:\?"4\H FYX6(YO95&U<-#-'U\&SOJ07FE:J-2,YMW?@>I U'L M*CX#ZU5GF"L*LRA?>/B20Z]E7'$MEM('EA#5%OO89T/]7E,<4*]3J*_BZT0L M<.CE?"OYY):2M?;I>#N"XRWVNR.&SL3SH#JD%R3U:91\\[DL\_C<_'[PA_K+ MIY;U2(O/>*OOO!4FU6Q[7XIOI,O?:$@J"UW\FB=B02+FAYP?VE@O%N K.@ MB!UD[BI#:_ <23?DT2^)!.7'SR0FW(\F<3@)YS2FDG_INA6'4O2NDA61T168 M[0"1(\(U%C_2B[.EV^B*S8)@<$1DS8DHVPVT$5:4-3/N2HQ=+W6K<@)%M-L< M2]<*%*S*A_ 5%4_50EZ%S6^50_H8O72(5XXPB(6M'J.I^='&M".36WF1JF5W.%Q%;$CE]"%8%9.="SZCN;A>T,W;4!I")#3N.3Z#?2-IA M^JSVP@[2=ID\Z]SW.G4Z4,K,%"_\6*N?M.KK4I1P6#7-5@.[]5^^^BGAU(\, M/JBF.?IM--MJ94:V'9D=5V/\C?'OU_$-9X$Q/M"UQPX%=I!.(^>NB>=*ID.? M2/B9L1 BGJWVV-[^#N)IY-PU\:B(!""6HAVV#[Z#.#8X'7W0M6)+GK8OSCTF MA#^;WF$T]<%VY'<0K!8!UVQ-.+ X:A6V'[Z#N*H<#E^_]RR_NGZ\GZ[/U\K MJ;8NADI6Q5!)I1AJ5BF&&I1?](+5)UT* ][*KIF=(L8-Q3TA7E(+ >P;;(.4 M6[.$;Z@##?1([EAMJXAA81O]RT4I[C%*K^MHM1GD+3!P/3#J: ME^DT3D>"!QFX[ BO(WFLV47 =;6WN?'B"?/+"H M:7C _E6=G^*I#J/_4ZO W='_>6%O/M!@/I FK/M;YJL;D]-91?S",/X@&R:B M-M ?>?/9 4FH YW#AZ@XVB!F'T"XE,^>\9J M:0A=.I,),=E=K'4L'J&)5;>68,OD$:A:WH^U1RQV>/',RUWH9BPDQB#*AF]=Q\PY!HPZVQ:/HPSLL)\,M;-V:)TVA"FQ2 MK#T9 GI)^FWZUAS2(&1G?<<7.H3KCV%6ECQJ)6 M+7SC(6E2$G(I47&XSTE_$9CK!Y__ZTB?A*ZRYLA9B[-,,"H7=L'&]7S!V7-> MBKSE&F9+-^S,059<*'E M)I08Z!5]E7]J,S-#%^S]E:[B:D7!$6EI^5-.5X?5M>B'?1:^J]Q@>#@B/+G0 M5N=OLS^QV1+[IO,NSD43SXZ(1,M6RQ38U@^[@&SO]G1892$F09#-,_4 U@41 M+ 3Y ^'BSQ%1(HK#R9SQE/XSKT&N0T6O(/U] :A*/[NF2GUC[/J,82Q;8>X% M%/&?71,Q!(OQGYANRM[ DKBU=Z!^.MY,XJSH.9>[/=Q,3G4R,J68JZU&FMEI M8K7G?&H_-XOGB,+B74D4^WML?N MGL2Z?Y02/C]CG+,7F=N"S:BUUP!^/O9R:K+*B;D$>4KL]KN;VR+Y/ M0$BHJN2?^?%W.4;C.M#0&GW[RB2&NG^CY=<1=U38HWQY4Q5FOO(#&M%T6=R? M7!F#F!O$OZ1+0[[!B@KVI&DEPRX .2S;*Y_RXF"WB)ZR.)UF:9(*7U*P82=? M,R7LO/O.,H8 Y8B-_Y2;N6JU"6X@'EC)^PTO)7T .P[X[CX$4G.EE_] M/Q@OKTG<"VJF??R/M8KDBHKWL/3FDHX7%(0\.:X=]_$U'O;Z\Y^.U=<-_H?L M8&B/^KR7$"59'9[0V\9VNS9SJ"E9OT;1@FBC46RSL%I3WR.[@/(]LN43B\1P M"L,]\R-Y)$U.PM=BS*:L.:0SLK T^#?[AQ!^5BMEOY)+>%J1FOC;ML3$3[]O M3%3)Y)4V"4-^#=_+CR.C4%=L+E/FU)-HKVA.3+^&FAK M^!LX6(=R?6:+[E*>!6G&_>B.T&1.@]]H''XE\P?M?5)C#[1@QHQ=/>L#X'NH M>^.$LT1$2$2>_8P38@1;UQC-);7%VEYU;Q$I"706?OMN^?=)3!":)[TKL03I"%<-I1 M"*>(R=#>A7#JVM1_+>\(DGO_E;37V?U8J[.;]_94=^_>G7LP*Z[LGO/.]$#/UIP%9QUNZS=8;,$8>X MR,!?$8&L']4XT0NXM2/V]J&]-(%8N"4YE3F;Q.$7\:D.\FOKCKU!V%F*,%S< MDJ5F.FD5HK8?]@9A9^FU(#'ZD^GE]>I>U]R=B&)?#;)7E1XP=,3\2TZ*E<=Z M&H#VQ[Y=U%W&,&0P#[WVK H;RU=GA8!1P;[%U%TM;% Z .58<9B?@9(7Q2?A M'R+F;[EGV-8/^^[1#H&7$0E'IG=K\]W54@>[0=1;A#R((X>2V9*UL&)Y%E&1 MG,Y6#,NY*9.U;F[%''7/+FCZI,PHK#1BW5\(",!_/Y\9;W:M3YA=6Q,V M>6MV:,S/V%L2&E]>KB-6CDAZ-?%OJ&-3=%K\TR:7[=-D;Q\87ZZO9VP=T1B- MOJ^]75DV6HSRR7I6:"(QOARA-3YNR_6"A%F@E/1OF1_1&55U5(O?)E*]:4H[ M+ %@NN-+_?6#I-MJ\8W)4$2._2$BA:MCK0/-1,:7!^R D=O2S:NG6B5OV@B, M+XUGB8W;$FW2Q99R;?:41IRILT3+-6&_Y>X.;A,6'CWT$7R!->"3.QI@CY K M!P[EHXPLEJO'=%;N%HGAY_7*9=* ^@_R CE=G4AO3L;6WA-;$Y:)V)*T/)OH MY<15Q:<*^;<$;/_Y+67*\8O6/:0SK*HK"5@(>D>OC6^S.EPB+NJ4JL7)BQ4H])G M?"G0=@1<%15(%[^(Z:S\N6]KWZ0]OCQH?XB.1T6D^R7^ZQ>E98N0)%G]3$(! M&A%SUV[:8O.9\:5/!\%Y]#K4DJS9F?#XLJX]87D )^^Z3;6_R1O*<;H<:@&K MTQ]?#KA?9$<_"=T]"9C/_$2^O+9N(%]A&V)F,GUM?*GF(5$_Q#FLY?$+7?OQ M);+-G(\^CUUAKY)WM,J&-?8;7[X:AH1[BT1EL!T>(;$F!$YDN2Y9F]=$@+;] M*;?M6+UW'+IEW?GD97R!I+DU5. NIRX/ZK&1RG%56$&DC]O[4"?OCS?J8CA7 M"?]?8<=I,.?)83MT\;W$)L\_/PMZ+FQA.6/\Q>>A9?S=2. P]H ,V#@BT<9! MBB".YN<-+HP79T"=Q[?58X&)*\RW=:;@@7D?66!A3,_H8&>.4LRR$MCF_"VC+$31HY,KF+JX:K:MA]5K#*9I"FG#YDRJ'NV MSHG=^$OU5I5,N3ZVO6G;!VWL1=92%?J#TQ']T.CV!8TR\6M-Q:UG #TA[$6Y MGTF@#:CQQZ^7\T7$EH32=63 M9)V+;M>CG\ZJ>P:W1#V%*[<.\EV%AXK)0W*R.]+%?;=%R.TZ23(27F1-Y\?F*+A M+201EX* MYFA869HW%^M>$!GR[I_)*/;U?-N$Z'X*!O8H=0PRGE MH$)R21O[LKZ2T;\S ;UZ-'./,Z;NX]B!GON3IEELAZRH%_29AL*Q1%#3S4]C M7PD8CY(VB1(/$$V\F:*S%O,<7 Q1Z$JE;Q= MGM<;8"K2?^HMIK"0R-@7PSI_6XGERU?" YJ0&RZFMKWHH7D AQM=[$]\AZ>T M(KSG-$YHH+R$O:CI]B??PHHN(CH05?PLKP0EUW&>&&\YH#?(Q]X"!CNQC$7Q M$BL6!UJ\^QP$]IUE'$7M7XRN*+!I;[ :_Y9,A 8][$ +^VKS_C=IG?0,#6(9B^*U M6UV-1;1)U'(DV/>\79U&.PG4P+Z1$DG913Q1J@T[/W'0K_D+WW/>O]HF#D6I:36+CT+0[^KI/1:M\#OLHPCCUK":OD:@9 M>2;Q7A6M^D'LP#!.-4M@:9C4/9OM%XKZY: M]7O8&__C5+6ZQ,:A:??[74'OK=?/P>K+CU//:O(:AYI-]SN?3:VGLY.W?)I9 M8.[I6<.^+WLAO-@!GM-4\-"_NL&^BGR!=]@#$3VIG8W\QJ!]ORX6"-K7]-6# MVJW:G_KI!>CT>>2.W);E2BL'/8N#H'O:OS<-X* VP;0:O&]4AY]+'WKBHC[Z MK6/6MT0Z0C1^/&>Q.@*9^9&LY=4RZ[HQOH/:=VN?G]T W;V9?&^X;'2Q+DFX MKU$=U!XA:,Y'5@"7;*&? A?NEFH:QXYC-T^EWQI.8WU@M4=L#J/^TSAV/O>H M\I8W!?=N" @INOL7AI"B4U\]J"U5M!Q=18"'KKI;Z:$]J6[35P]JBQ8MOS<" MU46/G%N4W(WQ'=1.\@C2*6^&HW'B3IVPE>TAH;_W?JCVT2S[MU 6-2/SNX7& MCWP#=$@(=]1E9YXJW(87]$+A3R>U%PI_/"YJV.2TU+.$R=N[A&.H6]/5/#8? M]5V;[0"3F?Y3;R\!6$CD0#8TC(5HU3_*Q]Y7#[(,M[A:#P3[X)%;ZKJ;.%U2 M9LC.@]WFP AK\!]4:=2MJ?19.#$RT+EB7&GD\&M<_8O8IV+@^[O"]CG3 ;1L[X%X$K% MTILR[%31%RQZ.ZU%;Q^/O16A/(YS+G2[_$=&TV5[*+;=#M?JJ\*!QTEM_9"# MGF91U P.PKLK9G3/B2^,86EA11]J5O33L5?2>3.BWL:\(9I[F. M9XS/U3>,]>H_UNK55XAY@:#FS00YCZ[IN5&3OHGIR_P'0 8?UAO3UJ[CE A% M26]\:G =-UMA7[.U$,F6@35QZT@L+R)%-B?W_BM)VF2QU1 [_;N3/!J9MIKQ MBG^1_T^&[N*7_P]02P,$% @ !8,;4PWZ$_T6.0$ -1<, \ !T87ED M,C R,3$P:RYH=&WL?6ES&DG2\'>=/__-]Z(DK M%49NX/^\5:_6MH3RNX'C^OV?MY*XMW.P]3_ORJ6?!C$\!\_ZT<];@S@>O7G] M^OKZNGK=K 9A_W7]\/#P]7=\9HL?>O.]\+E&K59__;^?/EYT!VHH=UP_BJ7? M5>E+GNM_FST^?IL^V@D]-_&AJ^=;(7[(?W7O.7N4?CPD=;_&AL M'G6C8+=1W[]I'?Q$^L+W6<_6<LX!SO-NAEGZG#R.\6O.S)*(>ZH"7"; M.>$+>*.1CANJWLQA]U[#M^;!)-KI2SE*'^[)J$,/ZB]HU)U:W5HS?!,&GHH* MWZ%O"EYRXG G'H]45+PL^/HU?HUOUO#-;"O=(/'C<%R\;_UE;N]1&$\O#3XL M6%4LQT[Z+/SA!:&CKMRNBJK=8$@OU%KP.%&KD@[\%/B_GV(W]M2[GU[S3_AV MJ&(I<* =]6?B7OV\=13XL?+CG4O8U9;H\E\_;\7J>_R:B?HUOO=:#_O3_]O9 M$1]B._.][?B])A^^5IKM+_^=O&R;1U]QOU^G]OG5[/,.@^T>X5N 3+7Z?5YO'7U5@+.P"?C_B0]@'!\!?$+I MG?J.^OXO-?Y:P_\=[K6:>W<9]] :MSU4O@/_QA\\V?_:DUZD[C)4VQKJ* E# M',B-NM+[7.9:R^\MZ&_7,=1/C$;_!,>_ S'&+I=YB/?XW-D[Q_"8,CL<@^X6APP M>VL1>_-A^M\^!B"_M'WG8SOZTK/7Y<)]"J34 M<)& ,- ]DU\EY\%ZH2+-WKCNQY@Y^ZX=RB&O^ %>^>Z5\%45;!2"M'S)(&;A%"Z^W#A>[\"_Q M0(6GH 4,U^YT+W&@M;J$$! .25B\H+@/$X2#IQ M+_':71*U[@G.1G--\:#17!P>6.#M*N5$N 8DLF/5*3S\8L*?6-_AXHX_P]-S MU57N%1+[7+BJ>< ,$#8/=A<.0LW;+V+@Y\">/@; ^2[E]Y/O(^5'ZCT<>*^8 MH.:!::O56IT%WXZBK=;>PI=[K'H*%NSDULO<:W%@WMM?N77/ >V]@X6O.ET@ MT%W@=UW/)7-!\294(2>;"^ ']<=:^K%R$GH\^GXGOZL#?^]DVQ0O0NVW6X#Y4(-T-IQ3^:!>WP%!<+U@RT;O^%VV@70*_P;""M(97F@623VU* 5%MW(-66":29M_9Z@M;;>KB$ MW)S[:IV[.9-EVX[AHHY+>F72=4_](CMQ8>C\4#MP(@Q],XMS@P\KBPQ-+HAO,6#',6'<) M=8-0*XQ0ZR.Y;M!HQ=#HB27:>'!?674[=H-!*H=#Z2*8;Q'ERQ'EB6?0R5#)*PO&/9UT195J$F$$E5OV._F M7I[O7MY@SBIAS@I>RK?QG+8*@V@DNPKS;OU(/6.D*=[JAM/$I=^(I&QS9\)&9E1#62Y7,46+]/E#>>T03C=$> ML,;>>QDI!RT9@,U!"$[E_*^5UL-YTG-516RA<;/UE21!_WN:E9>/M(%1K+L^N'^9F,-_@ M[@/@^"%(P@WJ/BKJ9B#?8.Y#P.A>;9CN(V-N"O(-YCX C!?N]PWB/BKBIA#? MX.U#H*BNE+_!W,?%W SF&]Q] !Q/W/X@WN#NH^*N!?,-[CX CI]=?R/I/B[J M9B#?8.Y#K#0;>>&Q[6(_B+0P&<>T6"A^V3#<1\;;+RO ;Q\AM6;)>+OQH/V( M'K1G@+<;#]H/ZD%;?]S=>-!^3 _:,\#M!_5@[;^N+OQH/V8'K3UQ]R-!^U']* M'&^Q]RPA+?:>G5S0 MD*J-J'=N%.PVZOMOX!DSF/DJ/P6.-F-\!OO,*32\Z*%[SP'K.YLQC^-> 0I/ MPQ;?I1ZU,@[":0R^ PPFUU@TJC7IL?*#H>O?-NWM<)F7(1O#KG >FF_):+7BY(["2#E'/3Z]A?? 3__EI)*)X[ &/Z@':OA&=P'-$ MO3:*Q26PD$A\5M?B/!A*O\(?5,0%X'SOK1C*L._Z;T3MK4!LWY&>VX<_NT!R MR"M_^WQZ>7(L+B[;ER<7/[T>O2N:; 'S_-1Y=W%R]-OYZ>7IR85H?SX6)_][ M]&O[\R\GXNC+IT^G%Q>G7S[_]+KS;KEK^*^,!J[?CP-X][AZ5!6-6FOWD.;M MA-0K.?VYU'5\$%_$N?@D?HI&TC?-IK\>UG:_*D>Y.SO'03=!3GDY'JFO761T MM;U:_>M7T^_YZU^7LGUT]8?7<=_W8,1;&V 7-@SGCM8PX1M[OJUW]=K.OR8; M5O_T&I?Z;LE']/>_U?=J;V=.T+C#! 5 JXUPDY/#EUO_$9\NA"_!/' [5;$ MK\J[4K';E3 "7'0[-(QY-SN8]L3!M'T_D=ZY&@5A7'Q R8??FK]?7NV_/VW= M^X#L'N6=(/ 47&[8!KW@Y.P%(1P/]W?WWLX\1/H! )Z"4 0B )\DX6G[\^?? MVA_%^B(L M0D^)O'UTB5_7#YN[C$)Z(0O I%NQYOYH^0>(JFYOO/7N0Q"*>*!$SXVZTA/8 M(UXH;'H_1<%'$XAR1J+'"2<9%V-*Z_+B/^V/\I_M[A\+P93);O;*+T*8W,*V MWGV28]&L5P0..A-MED;W0?AD3.7N-^EB.KL<1-W^:4^NO ;5WYT M]FV1W*4GO:B0O4RN2K.8W5M9S.5Y^_/%*;&*!7.156,=&9>(4V )UCQ$#XY! M?$W_)^+ ^FLAL],_3==?\):P5Z(;H88*O,]3PD](;YU$XF.-Q">DR'V )S_3 M@S-DE][WBX]_M/J=3_L+D%TFYP1U?:>Y>WCP^%QL:?=0*CG:?(<><%0W"$F/ M?R,2U-P]UU>SF0S#ZESUW0B1-/X,4)S!8"Z'O_^ONUL__>M@86>4GW?KW67[ M]X] ]L2<Z$:)M_(UK5W5&JI7O;AK;@^+9M.('@CA^"G/E#%2!,& MU9(]"A(0G<='@3,#W_]4R9_?+N6___5K9Q$7ZDZDNEB/)E:C,+A"M,I+87.L M<^L=@OGW(/QV&U7$SJRCFT=CTF>V^TAG=@_N=90[W$OY_51;7[OT[DU73>NJ M._K<:A\=?+R_;#UY:C,6 'HSO+M_N+]_<'C;B64'!_\)[T><D O^2$(W*A)81]Z;M_T=_$FHLI8R7@=EH] MKUY4QT[7S[KE?9G?@B'N-E>6(]1Q';#M. MJ*)(__@(;]2+N>'YN7?QJ1D.&WVY,&Y8,/G6N\.:N)1C#XCR.'2OU QV6+E% MC]!C'L&O7\++X-HOWM4'S_OT>^!\N+S:7?2NLJGA-@:U=R N U]>2]^1<^_I MJ&A/Q#>_A&<@' ?FR&3J+-&[_KZC]]^/5B(DC^?3%*\P-G"B)A]MSVA8 ?+W_S!YK<& "MPH!*QU1Z"VJ.^JF\3 A.!CN -5]&I!*+KMA@%\#$ M0C=VX7&V3:E0.6*4A%&"1JHX@'=8ZZHWMCNOD 6B);K=C=^L('&;V[UY-XI= MFH9T,Z$"_JCL."U+Y))6<^G&'EDAE>P.1->3431;F]6@;*P**&VL?Y+3LMCJ M92B)15^,AYW LX[N1E#N[FY .07*S]HP3BBIOG<'& $H@-U<#USX).-)DU!> M>ZGR,U#_.DB,Z[K.E;YXBS=XI\NXCY=QN31U&Z_X'N^M%Q]J05 #:5QO].E" MFV&[.?&^[>[O>HT_G04(@I-SLO\:SH'BF<7VBVJMT0)$#L65]!+4K9[*W9C> M\72]+\:1F)^*B'?!4NBI[Z 568G.6'0'"D *7WX3+@N;EM/4C804UR!9[GSS M@VO (R4CH'L'OH@2T)_*)1D)1_5%,:UF'.X/1? .Z_$+87&K2G!-EB*ONK?O5Y_/Y#]/O^ M(M2M&Q> #/Z.D1=[3Z=6W06A_2"&3_Y,7&3VP.,I'B:D:*BH7"KD_DUT2Z5_ M4713IIAML'K:D_&?P$O\6(84SA-&,WRZG>L/GSKM7\+6XK!Y8N(E8_&3<>KK M@2(_[01V;]=?B0%P9$1I1TC/R_#:QOB.TD_ H'D M<.!;T,KPT5&HNHITM'I#4,QJ)+9AO![\&R6@6$2# "-M@+XXD"X>R'AR]=EOOXE5%2-\1VPW>94!T,>(UH%K5)&L3BL M"4>.HZ51K?[(]=%;"X]4&RV,YEL%\*>5S NE]7:ZG&52,N UH/73C M& A!>8#>8>"CHNV-RR4%6O=8G*+\*;OD#SF6L10?^!;+$7DVB'VKV3+:N>HG M'H<37.Q/B_(O%\S\^:0*<_M_. M#N"L\IPWXDSVU5LXJC\3Y7?1OB!V=HS9PW&OS.1\B#N=((Z#(9$SP"6SA=NV M[TG;^+0M'%\-WUE6E6GM+N>1RAB",748,X?)[IM<;B=4\MM.1P$]P)Y&M$>] MA3@8K>CZK5-YC$B;# N9!#D2[L%WP,;P!9 M[11^$0V!I\,TH;DK@;*'0"MCE,5@-)!?<*5]T0^#ZWA@OJW"1A2MC51ORE @ M;_G?_];Q_._EOH[[,I.F"]L@AU]FQE]HPB.>;T;4U('[\<]_736'&-FZQ/39 M&Q8V9P;MVKA*02;NW2![8LCQ:I C0R<2&!GM M.I;EHUS*&?2WY:M"F72A4L)"JE\L]&ASNP/Q-@C?B+\U&O63^H<[ZD)\NMK0 MK*\?C"-![4#&L<+X= 0U0!TS+6%9H$ZB.?;O?SMHU/??@B851<"O\2-S$JK7 M4V2<\'7T+[[IHB[KPSDC/8>!)P+@S=GQHV7;7'WDS4X/>;>V:T707%!OYE#:Y:)X\8:*%7 BA0EEH]N J)69$AH@-%_=CF0!(W.\5C _@'5 %_)1--#YQ$,%Q%& M)C%[R$+5 T;@=Q7R,G9VN? 'D#_'S.%'^5'1K.VAKRD*/*^8LC=_)I3V+BB)\(HK K5#.FAG0YB<0?UKL7&GL_D,$9III$/FN")*8A!]$<1W>62X580C%*2E"*XUK$<54 M,::UDWX"&-38YP)";V86-M.N/AJ!@K*X/N&7;!D&-^JU@\;^U[_.Y97SWKLX M/NYESOZ9J''3N(6X KSO8*>Q/R>NG'[^8&&+J:S8K.P>$L[<@"_+CB=;>CA@ M?H*;_3"-MX)+AT9O<#XM5[T5_T$N"U_?Z*8Q/H[4Z9'WVZ0[*_);V$/4"H8@ MO73'7KI9]%N!E>_>B'8H.V[WK'1NVVUZ M.O2Q%(,0,?!OEZ@%?ND=(6+[<;0E8@PK_'F+/D>ZS+[)J>GX^QN0. %^76 , MDT__]%J^F[&MI3AZ9J1!Y*K#5+ \S IRWGE#H">Y\?&7H]\^G7R^I+(W7\[/ MOIRW+T^.RZ7WOXOSDP\GYR>?CTZ6SS=N7V=!VLL*.DOF+N)F/":'#_493,)I M[GAI4U$MFM\R?-?=->OWSYJ>&=MP[PU_@!<$EA05YT8B7H(Q=6X8+=2BNN19 M5Q$HMV/&61A\'PLJ(("(OD@$7S92GX&"(TY/3^&V@<5'B+;UW0V:S@G?0LR= M::I>5 GK3-68%(<,@_GPY?P3B/3?]SDVKF$F4RE&JC4L&E\PT@2>27^418U)7HO_D3O M>4TNZ$I<=RQO+PC-[[F(#&G/W>C;!]F- \Q;\J MV/.;CTU(O"OE@,S>ZZ$1E<6G[ M!WPCSU0:M5A:M&NM[]8+>.,(C0J-Z]OOS MNGQUA%1C;@W5#JG:8#AB>'-],?RCZDL/4+NK* ,*\)P^$=9'&W3?H'L.W7>? M5DSX!!J0N) ]%8_%L1MUO0!;FD6+7=3ZH\F$,26UIMQ@3EE5O%S6R/.;#'\P M"F^M[X5VK*)NZ)*S_TLOR_O'=E(46(4=<7*5-'4]GA,=IW2N/,K"H)"- 0!- MA>(3AH&&$<4Z<4T1<9:$W8'4X2?\KE5EX'E=F0O0A/97@2,^.5GMK8I^?:%C MV3^8V&/,H<8J8CK$/?V<,O)74K<^V& 48-3^^C+J3\=M9,HFF!XX,0IS"7?V M0D[;]J4WCESBL!E"'@6^PTD6^,RYBA(OID>^C!2[^C?<=T,KA;2R,L;Q?R< M9\PJN5*6 K/U[M^8WJ._(/2V'K15'='N!$DLM$2#UO659-'U#=XAWAVL+X]. MV6X:.@-8FO'B[%/"UHMD-/+H;QF.27*HLJZYX<0;DLB1Q.&ZD<01Y55B"A]A M.O!BV0^5QOW_8F)GF[/J@(%'O":04-I9IAV^94G5*2_?R"D;ZIBBCD4)*D]P M8V"D6QAX4=MWR(7@L&1C/B8ZR+[82.H;"BBD@)6)1/@4A.K4YUPLT"VWWGVA M#&#KHXWH/;<+(O-!;)P0&R?$K>%(M:=E L=NJ"ADK2).THYM7ZACF_8%'.EN MKTK\@J4<4+I3&U:PHMBT=A' &=)A^*_R([IN-N+2!K>G<'OM0NQ,6Q3QY=H' M;CIP1Y3M"XXO$-4X56QB8JE%U!5'#7""F4YX61#$QN:T#3QQ.%\ M9VE?9,M<^D$I[5-0X16V2-Z(U?-HV/\Q"O9_-OKU1K^^C?!;*V)C._D^<#LN MNA;-;Q/NDM3/*"ZZ ^4D'EN.5XXE'*X"2U@_"ETKVN\&F)KO_[S5V%HT"[^ M^63,#I.+TU\^MR]_.S^Y6#=.?D_B:31OJ2M\6G M3CIAY]V3M:CEKNU9<1!=Y,+@?2HWKQ;I<+#,:4 ',3@2K0)RK"/).Z'K3W'-0^2KLCP$6 =9P+9=@=%2P MJ%@YUC2'R:]DZ 9))&)@6A1;.Y3= 9Q0.*Y0/==1:G^+XC"AM415<>H+O"!, MK>QLH2;^)5(>=314W]V(5CP* P=>%UB5"VT7L05.7+/K)S _C*4A0)73J>"L MG!EM(.,3WPI97IPSMU3O[1L53F,[WIQ?.,I>VTD'@L MK(Y27*&RVH G<'OTPR 941E8ZAD8N4/7DV%ZYES#?""OL'XR#.>X/:KK!D@Z M&GE8RIOZ2E$]?I@^&*)]6, " -^GQI(A$D'72QPF18 Z%:)%CBET7Q=716_+ M)2SVZHUQPVXT=+OB6 Y'"OV%'[S$==PND..W" "YO_NV(HY"Z3/)GOH.+")$ MS>9]@@LEF'F]G;9#P '*N"!";B,A=^C[CR[0'5KU@*&,D*+@L_^X'4:-8C\E[1E+CB<2'9I5VXSN!(H["<>AA#D!1 &&.%R[D3*EXKD3H@2U M2W3"X)ORX:5K7U>8A\S=FX5.01 4.GOK'% 1*BN0#X8_)G(;_!5J(9P M<(**'!N62[ +U0A^)53'II-86SA&S!IAW3@-\+38MO[[R#1?F\936AVU3:M@ M9POL.XNM.JFN/7!JZX)!O.2>%LD(MU$_K#1J-:2;T5>'Z8MV1=WD0F0@D>DRAY,4P,#:U5X-ZV[COS-VANU#LZW!(>$Y A/? MJQ5MTEJ:A?1XK%U7@4X0?Z0*+08W- Q/@-C+F-J^" M)Z9;/.7*+F-3U^3R1"R:Y"@#P34 GBNZXR[NV (7HXH+@P/(!TI>C2T\T)S2 M<0$BD6&",'""O58D%\0'E@ZK0!+)BSNS'JKV95A0PM[XL(-X(W-0K [RE!A M?QF>3C]K@06.+(1;1I+XB,GY!%G0BP [TMNV""IXTA9([,N [G7=5U=?W:*G MV$C"7^* >'N-@BAR4=$DXH5%7V$WM@#;K5PSS09NNNRJN1*EN1)Q'*"@\4AC MK68.?1GMP)Y#E,I1&JX(9*5]1DQDO!C#7;'$C\DUXM+DE00) ]=& *+K%E2@( ,D.C>'2EN#E2(-#:TUOR>!,'V&-.RW4["<97+U=T>5\!-(D)8 MN%NU0XO4->R C<1$HE5ZDU.^5\17G6,@@CBJ6=%OO@OTS>LG[5)+>2#3.5)( M+S#-IK+;J%&;'%Y,C1X/0,CN#S"S3#,=%"!8*[L.0L^!FX1Q$:XSK7HQ+Z#E M8VI$#D4U*60**K5KUE)?F$*".I/D(0&BJ1\#G+D+$DD"Y,TF41>'IMT1)P6B MQVNVJR9DFW]$H!O!58*MZV'=10 6&;43Z6+C%/4=+L$(OJV(,8A?>'UE>1[I MK'H.N.KHZJSPS0_@# L\V+:+11LY-LVA4'1Q(WW!^F:_L6B])!FJ]M+L M0PN_L ]?Q59_&*-$4[>5JCBV3A!@XT7!/3>#TX]T48,)0*::48^ZEN&:\5'@ MN.H9\!P*KHO=Y\=RX%K6_7_T]A#AAI(M1WF!VMPF<-+]4((4P2+A4+(X3GPD M=Z6F*)&[_YE>/=0T$"M])&/1I]!8PG^ZRGKI=24NKP/$*="L?:UB^(8YY#%P MB"$P9B<6)]3+H+WUM%BJY= U1\S+G"D,-PZC,1$0\$"*=;+.7$,>_,@4],\ZK>+=B7'0\Q* MRZ5TJ<1G#'NWUDK2M]M-/&),L)1_@DX%8#H"6532_7$IW6OIDW@T#0H:UL?F M7FBHM,8UQCBQ;9\FW M5'KF.?"P46KA#&&GP]Q.M>0S>63XV)[PH&.ET:CBM]&P(,_R3_@QCDR9OF%\:_'OJ5=5O9- ML*UN(:L912BDZ"GD9']@@U7+"<&J28R"4&)Y)_#>#8/O[I!::L7J6Q>5+I( M@,O9C5U2GCS931ENJ@/!E8R\+Z1"/)P?C^XY&,H8LQ$06J&D6CW:P)]:H=<$ M>6=?QFT:Z&^CUQV\<:9 MA;=E0CD3: =I]WD=;NH,[,J0_*Q]GQ0VM-F3 M^A? ISUD8:$2YY9-%BG?$0Q/Y^$#A1:I[E0!,0BK"1+$OOH0+IS.<( ML8B:QJ)Y'E^P#*;40=W'=; &B8PMIQ)@]VX4O:SUH04+/2K6>]PZ=WJHE!DA M>F( !HJ$GT#M;=:Y;RB]B2UE^FG)%K$OMSIT"-STI#YY?4"%(NM?%FOT)MN">F(SGP M;C9)#^L8U4&5/B1NI*-BP%<_9R! A,._>\HA@T#?@@NZ1V,T[60B5% V4Y_KLIBFQY.%X?@Z$(ETD1(F]?'%" %LAK[O>T MJW5'1BZ&.,T:&)VJ* 9Y[M"-4W-:A/L ,J@8*2N=G(6F#@I%[#M&DM8[4HYV MR:(RF89I=(!C*+1:LZY)1EXI;&VS4.A:,R&+C1L *QGB=8!Y;%GPVWJI!@%% MSPR'@8-F^WX87,>\(XJ- SQ#FR;;)= I@:98-'(F(7G(V6L2YM VK/GM?&*B*8/B>SCLN!2^&BH4)_ MBQM9,0T.7]PS(4X&SFO7@^O;=0AI,D0CSY G?;QJ--'8;68P:NQ-@VA=V-)L72"[V+&J>,))NNNO M$R#">R[Y58E?:*JLH*09,UE[ 1*0)Z])V06%(-V^<1_1'=5!$4#YDD)2T.[@ M!*.8T(3*[]7)1Q)54X# 4 MG%ZC1$5P5Q,9YB+GNA-[)\V$[,71,XBRF#!9V1(5? -,/QE)[>3C'AOL(?Q5 M28^J',9B^^]_:^Z^_7+Q:YM^>97".$R\-"@QPP6 '/"?/MFQT$VCR$MHHLZ M6X.BYT8#\AABA*%693(U)_/7<%0DG$XP5DJKF>X0_=# SWVMS5VY@9D:E1T\ MO'3,O#/I'KB N[9P07M/C=*,+Z$T3Q0RSI 3-(.069Z^05P.#M+7I8]:8B_! MSR:\72P,D'\,?L>( ?@=&+W28?V1=N0C]1%7Y3 [8-(1ZQ<#^1?L&WT;US+2 MA%NX)^O$GA>"DZ!@8;F-FJ%B#H17UH0O.1?S,$N9X, M>T2)<<_T3B\D7X?M M_T:%.W'<*=4WYQ5BE.I)%]VB9&_ " Y;K#&;2T6;AR)U/+T-9.A%:'T+)FLD M7ALA'2[P$\-.UO_2/C'Q/C:6%,:6305_8=0NH67>3&7?G'CCUNLMF_]RR#"B M98\QPA2L"G25M#QJXKV-5D%-=R0H(/XA1:2CSND5;:VU5[2U\8JNBU=T\>:- M+"4RUR0WEQ/9K@J[:6YU@::/Q1M(M]Y=H&V?3-BC(*1[*A_-A;=(:BWFNY:" M(Y&_N%DI511C]$/D9<2K"\"QNJ9A.[]U9L_:++_7=-D5,]O8KOI!?P[2E#H@ M\F5(BFDJ]3(.RR8^N[>K37N-JLB^6N1Y/*KHFX7MHD#;DUV3;Q>@AC>VPPLP M3BYROPO914D.GKX$[>\:-29Q&GFFEN3V*WLENKB>C/!!?74RI^!0HCNZEN>JW>K+1J-8!(_D6" B=(2;,F\J;E MW]XG>Y?U;AXLDN3X]/V*R<)& ),1\EP1+\:E3H-:X/CU+X*+5N!:/4%<[ F M(<@)EXW\.@*@6A/]**-(#3N>=L78JZFR43(=";T5&&8J4($9*.E@AIF\4A1^ MKM/5,,>(5!Z3]00?=!2-$>L,NMV6Z(&N!#CD*;\?#ZKB-$X5,\J(<#D_'C&" MCQ>HT[/0K*3"-(X3%!0]YZ4<>Z!Q'>OPUEPN,=E).ZP_8?X7C@:G ME0Q12>N2H17KJD:]S!0]%:;<]CF^=!K8VQ-DU)@\_E>X4Y-Y)C'%UO5)7K9@ MCLJ7A>5D/;52-UJ[DX/"BLQ*V&R3&V BCWY $V/Z:*SRYVVE&%%&H%8Q-1J0 MH6\GZ.W 8#N82YI_%YZH4[YG;EVVM!]'9$F&[NWO3Y_#%5Q;E,7^(R"U'&(N '1DZRMSA.T0> MZ-TS:8=X")T@)%>AH]1H9Q" ".V$+N=Z$*DFH:\- ,2],K0T&,:9)F[6;V0D MN]]DGUP"Q.]2XX^**5C?7?O4ZOR%!Z='F0GZ[I[T&$OA8PH-Z*?E$L# 0;9K M\F$R1=13;)[\]'?@+F\OQ7OI?YM68^E%*P^)WR*;2X5)2O,RR9%T@-E S:9 ML]G.>A=7B_'U:*LT/N.LN BR,9_8.&9F>^0U@FF 3<1]ND#\L7%Y38 !N85% M?ZFPC08?&3IL_LK!<0(J-B00V30^_"C)LLC(? MR1'JE_@SU_=HI8A"I95MX ]]Y@%FGTA'V@*X_@>NF]"+V8W@G\F9+E_;GG%P M-]M>]];:]KJWL;VNB^WUIB)[:0&]@@IZITLN\[<\B_#,[O7V1=:JFM:OO?LW MLV<_XU0W^R\%W>P7:I1<3"G"N\-80RS7N&N-3'NWPRVO"S$BE$MT\FAW<-BV MAY+^Y_;%Q_CXM%_P4NA M>KS "CU/UP/^>:NV17]CR*?Y^Y[+U;6%L8+46[2( *[L= //DZ,(;CGS&U;H MYF^J6L5XZM;M]5TYJNYH/3V+=6,I\0E+%5\P]LSJBRG-:3WM^:< MV-P\'QB=$;V?H[ MR!6"\(T(^YWM1FVWTF@>5!JMUJL"3-.\8A=Y10&?*\2[&4U_/KAA%,-M1Y?. M),CT/,WB:6XNN*[?K<^S1,Y >C%C^OIOUZN[>K('F7TLQC:XA/ ZJ M>P<;<.30H[6!1P:/6K6UNUAX/(CY_7?@QNJVN_7N7 Y$_5%M3?.EY[1!83;WVS+=8J]9OEMH?@67,(2\]D'M<#MQPC9A' MO7K8?-YX=UC=GY+QGM<.Z\UJ\_"9;[&V&/ZXBO+&AR#!V)ZU81F-ZNXS9QDH M4CU_@:.U_[RWN%?=6ZB\8;=B6[W0=!CS5_)PK5<)N=O-\&WR;K23/K91:.Q7 MRJ4L.O(<;@F019&):"!U4*5V#;)#")M5-2N[AWN5_;U6FL!K M1;-:(X=8V<81[#Z0U+U#C L*C>3&PE=]@Y.HUYIUFH+ M=0V/XY$%T9#:@;!<'=,=NPJ@4XJNM)3 )RJ)*6CI*4NMZQ M7;DC'YB)\?P1Y_A2<16:R62F!AC]I+BH&&6I4LU%; QQ'83?*#A7^T-]I9RU M"8OC@CE<0NT,]K_^6:S,[B[4*%9$PHT69J/6#RH3C.)]@ 7/X%'3Z1Y#&G1Q M"(H-IO2NW5E*4Q R-8:86Z8 M<9#C@BNB"^(Y8K/>!3O8^<2U@YT\VFDVK\DU,)1%$>]*8AF$@0S5U%6PC05* M:3SRJL]^\A6S8YDR;0RXHZ>R_E*^^ )'0+RSH$86I)PO54@0_L(% C.)AX $"IOV[4:K57G&/C MJVLLF< 78KJ5B4L+L1&6T!;_3'P7]GU&Y<@QRQV/Z"Q4<%BA"9W14$_?F?C: MU,' 'EQI#P4^7ICX1:M:JPG,9L&0>RKO-[T%"GS6:%L5FJ!E'"/P\!;%&QJ# M.+*0\^*;O9*B6T=1KT5" EVW%<97(\FU(U#IHQP7194-S1?ZC"+[@2R+1L-4 MEXC%164%/O5[0%2X9J*,')[ATQT0)8:4* XD%Z45'O.R $.Y7)H"\[KPY!M" MN360"N!@M]](X5$N32%B$%*[$4,H73?L)L.TZTB>7JEQ1JP49XA3EM1+O(/+YC@R@JXM-#]@@?44N3 MN681/ G,@@]-LW?FUT/D"\A@==&_2?&.6$!,&1*QW4]EAH2).8I4]PH+F,HD MW_N$TJNP_9Z!MNSJ^AA<:X_JANC4 Y0H;4;.] W=47+[OEN)] MPD(=O.29'JGPKJ*21X;ITE79.'A"0KE[CV#^I]IHN?X,HQ%]Z%)%R#=BAQ_= M>C<9ND@<="IV\>G7^0@2D[[D0I5RD(D4'LF%Q[E[9[CC4 ?D#5?NER)R<;[ M;"3'8LXN%:XDXF'A7:-I,%*^+EA8H>PHDN*SFM'% M@&RC\-;J]35G_(76CIM#[/?7.L1^?Q-BO];M['/UD9BC4I_N]=>&$RY\F?/1_YRNQ;G/>A';26=Z@HR5 MS;R;>==V7B+O(Y#<^T$X7H%M%S/GA["UVW,-9MT%*\28[%M^U88K#OG_G'G_ MLFPRKAAD+(O8$4R;Q109P' IMD,S&&ES\+4,,>E1EP%FZ_A25W\[YO[DOMN6 MKWYZ[;Z[%7N7*%K<'[D?0<;X87'_OW1"RMG137TR+$\=!45HSNLQN+Y:J-[9 MH/K24?WV!/3'Y-6A&FIG9]JB:ZF+H$+:[*W'"X)*5K/-0I!:C6JV>XG0RTWY"D4A79#KFM>A3')LP MI#<;N70SW6:ZFZ9[KERC4:L=:._MEU%JCWI\?M"HU1LKLH[6BJQC)JV%VQ2+1;S"Q>RW*@T&Z ^/8O.+ MN2_$(>4E+.]TS%I>Z!R/I4[1H,TL=8I:=;^Y0;([(=G.8^#79AEW6\;!+M\. M3ZK<%CHY'Z*J^ERDTZBK-VBJ/SCUSGV#+\/O]0R7LEX(=>MTD[;-Y[ZY]>![ MH&SO"M,C3VMW)N26]#O>T?1_M^NO5HGQK;9=?QWYTZ6QM\]FRM41'NXZ M7>3^I0!%&OC!#R?BWG["S5HCQV]61!A^UJ>RQIO[H:GI80KC\J!P.Y7/5 + M"I _R0+S#1-N573%-F;T4*I_^A@KP)3\/\)T1VQD#NMP,=\F[6A>G-H]D92< MRZN4,5>(T"T3KC 3$)X/@Z0_ *B,P\#SA*-TBU2."DS3_BG%,_H'=BB,JK9& M?H&)R*.TTP=FC)J7,$>)RE=@ 0EJ^,"9G=@W<&*MN2';!3WCM31I=DK%*=)H M,4H)-Z%;^&&CD7](X?5S!MTA2"Z8Q%?5\V^Z]@FM& MMV>.YFTS+R:[S)=+I]QF?D6P;_DE%FY ^$_'[3QZ[U=OZNY9+MVAO:?(=?=< M:@[LDS6:.I)TA"(. M0I2^L<-JS!(5#3>QS7+)VB?/EV(&O-5E?N=BB_@P98_(G*@D3M8^NH*EZIR( M*\H ;Z2AAG)L#'4>(XE[EPJQ&3J#'GC MK$LZ'SG@66A:+SO4?+##Z1&$9#9]GA>OD*;7K<\!)$-L>DU]R6'M/2_!%;&2 M F/VE0]DYV7UXKKC+M:!H\;D6#B*JRK 601#MVL5?WL+.E#H9@/AV>DFYS!C MXA,]6I$?T8JS[*KAO#70R;"!45H*$H MCYBFYC:)F*+% \&JL2QDVP"YGTP!);9JN4.H3"?W,1\E\'$75R9*X_ 2-&?HU05"*)RWK@8Z&* ^*\V0!TRE3^ M$4XD0TMBSW8!-JJUR">$+^=I""74#N)7*O?<7 /H8*UK !UL:@#QMM:MS:Y= M_*?-S:=-#] C% 51WFF#S(*5'[%29@!/Z-;RY=*)N?R?1TF@'%,ECR75,^NE M F9>-@#>J(6Y,8(&&Y:R5 C\WZD75W(S( [M=Q35L M,QC#]0/3C>"J9.;*PZ7'DF=MZ>)R[%&KO!'>)UJ*1EXYQ.J&F<0F2%@:95;% M/Q*GSP/0Q2:Y/"'5"J=[-])J.S U7%DT:S"^1K/1$"@\&&OA0UNVEWFLLP&A MD:UBF"P7OD5-@('[&4 NZEIAN$B&0U3#L)PPG"U5,_5C4%BGL9>>KQ2I 4KD MSO16/*B*=F2MB=K5PFV2A-;3HR#2P@7=L"0+!8/,LL*$"[@1/95SI5$64).+8M.K:% MPJX);Q?UZAKF58!/-F+C'+".#&%LM$7\2+>?:*2+YR9)&T_6FSMJ&HI J>XJ M]RK+!%_7#7T!"@5)QL/(;:P%"WA#E5BMF@QANM6(L!K(%UXR:D>$\EV*9# $ M?JDI&E$M4P=9W\'B]#W 3>08!IC9#$05A"T.U97VC:)C\6^MM%,56K->HC9[ MT1WID6B:(Y'46(,Z"?S1H2E!K^-1R'\ES:*,XTFB,!SVB<*5#-$BP10!7Z ^ M$--")+FKF! DTA[MF.1>5"S0108\ ]0H6HBI)*Y)&C><<*U1G^J7)QF](I%R MO78_@K53)75BSU1NF.N69_#C"P>]:HFO^5J4U+=((F\L:YNRDTT<"CF]R0)F'WO,*M#A0?6)#T# M%H RL+(0*W_[$=<>YC/ O>>.@-=$.G'1FK+=Z'I9'U*Y$P'P0A;'R?9AU!:M4F59+F MKO0]4]O97H@F-'-VQ9B!#@UC98"]OJ!\221PVX=:+A$5OVC4ZP5?UW*4G!HF MF1G,G)IDO526R*O%/O!#$5\KH .X_7PLJ*]M%>62 7G1J>@=K_E-=NJC5$.5 MSI[%-O :RBX.:IT27.NZZ+KT4#= "W98+OD*'68PU%]TH!1H ->1_9C5$P@% MF3!"YU%%_X:Q _C4FJ/ )TG&[O1N9A.;$=DPMNTR3KJQ1 M7=:PK8\(!Y\%+".BH*RNR6]+\IGLH@[FDLG=E/"B+^"H63$P.&FD3/T:?4:1 M<-2$@_QA*&FEG9Y2?!KBO0:R*ZK^@%<)R,%P 6J#3,_"2RR7C;B53JFCY]@F M1[VA-)X1 \>//1#A/1/UYD6@*;$TIEOS@8A[+>U.)IH="]O>0'$P>C'47X&Z M6#'WYO8A9& !5DU42#XA3Y/*G2@Y&RWS?<'JR,K"TTFTA6 'H9A]TC@JSRR] MJGA1K]1K+*/F3H:V:*V/^[C1 E'T-D;,@-T[.5E9I4B 2U MB3$R=S79&%)7Y72+%-OX @2D>YHY6M9C_8K04B]54T! !3^GUS>G3_!PK7V" MAQN?X!)]@C>3V*/1! M8U&)L2.E9*SC/O$STUM/&RI BQ5F]+__[:!1WW\;Y>QH7'47UP17)G:YO6142Q1 M[/!FCB@C[8=@^-H 9:DYM:OPH-0JJ7N,.V*9LT!F);*0RG6F L:^%L6^9# M*8;4@B3LFXG@0V ?(-F=;9OS]'U2+AE\L*ED$M^MF.;,T$"00Y7.ARO. ]#Y MDM39)!L@[4.3#Q:BMQ2J9%WNC,NEI8D01G),JJ/V$/1#BM>"]SRE[1WH V4A M/=*!0/!1[5=$^3K1% MD>*0A*&U2-("C89/[:$SPPV_@D%;O#=]X0]!&J8H/KUUA G&'NG]D"\8J706 MCH'2H!=!5C3+M(/MALUKZ _007P!/(S&%X?1I6+.*E0=U)HBC%X;40BE;G-M MJ!LCW[00-($N% '&E)("!L/T!&@WV$8RZSZ(-B\ ]4!)Y$:%$$I[PTX0(;KV M0V4]GKIZ)(*T@RW@M)G#"ICE,>$S@%R"RAMK")$[!-4KS"2DO,.5PF,IJ((X M$B")@_%L9/E*1B-O3$%A:-V9E/WPZ(QHEQZSWDE^"3 U6NK@_K![)"LY;3@@W=8E ME"=(H(/9R_ABI&(08-C-7"YQ7(99!]HX,A=4+L1.DP)%1U)_4G+-4&1?>M<9 M=S<[3W*<+!N+PC)2%1= B?S-"Y U9V&GNN^#(1/J*6H8INMG/(<\<>1&HG>L M&(G\6BAD04\RN0"T#A%6TQ9![I >FO]BTW%B3J0H]D,1_LG\K40J-/$H\N-9 M9N)T%0)MR-;$262ZD.JUI4(%N0I!7@F,TXHXK(D[0"R9M3+3MY<] +0>MS>Q M) V2?#!#-E>Z'EPCF37(.V9XC39ZV?N:@.B$G6PR2'G"3%8NS6LG$U]((&&/ M',(MO5\G4);6@[U73=!3[DI-V55Z?B09ZH@E1*$L_H7\AM/6A8K89>]@*@7: M]M5>3A1(*6;R6;W8[,9CHTYK_V6Y-/$,]YD.7&T3A8=O66&M@N,L9H7VI_E-D M_78J8Y=W2/V MG]G(;?,KC)<]^52SC=DIM?Y"Y;4H \CFN#% MV:LF'@^',#J%YZ;7!V=^F-WEWM0,H'B!TRLI'J1@?6MN:SOE._!2?I_=17@] M=C)M;=7W>XQ[RP<#$;[+[^42=Z)FCV6F-F?QGN:N*(R%Y6!Z3^,&!2'2]FC426]LFEU>1VF4"DRH?,E!LA3J!0^$)*-/29VFT_KU(,,"/3X+*##62+H. MYZ%T\!-#XM(]$6(:F+KJB1HF1@REUA+9L"R:(D]9#!&SH,B]4" M?2VB"#"+O.A!7:*"Z-Q."K)R10M#PK2,!AM3QCQ?M'I495!R)),<[,J> 7'#R3#$9@HN MQNT060R-+7"60I9YRG!83,GT.4,+,;W/)*_-8,;IYBMEM)3L[<(P01 C]=3L M2K,M.:A,8,@04Y'&%&4'" $47C2KAV*((H+&O#SJP-(HJH1=ZW1F9$8IYJ#F MF*:JC) I\,5!O87>/QU#,SU$&I('WS9>BNT7_/PKRX*D3TKYCB$3UGTR-V46 M6#@32\RQ<9RD":8:@,X%IXSY8MK)RBF!Z$1O5+C8%DX(ATW(05(9$WX!&5Z4/G5RCJI>C$8 [K M-JB XJ)M6P@ G<1*-7*(]Y)!3G/H-9<5\[E")C2 7!-!)KA@W ]@"9D#O=3C MD,EB:)"+M8$X?51__9JN,#]B'I ;%3Z6GK[K1:1(.J^DN;8D%SA#UW>)0R#0 M]4CK'FIBNQ$$<9^#;P0P5$YW/^SE11 MH[S1/'L;4VJ'^HHT,[A3F2!>>$^?;F M= ;7:VOM#:[7-N[@I::(_M1))UQN,B9,5%A;XQ'F7? &T7T=96F#EGD976+: M()I9]+7 P!J>#IG23A:'3#LFF"3E09:23"%3+!513OZUS]F";Y:C9<2RMTG;+#VLOT M35WS#U_=NJV\(1-R8170U@0U'YH%)<1 MS\I2WQ=:V\?5':$%5 -+Z(,5!IM%JO"B"J MZ6D?Z6EJS5/@GE%8^P)=*!6TA$^>@ZE26##\?.4-;UL6KF/KW8M9\Q[,M2T M>ZMRL-_@[D+%(\VWD$63Y;._6]N]Y0"M)%MH_PQK #?Z-U3R, M1F6_N?N$Q[%,4CE;L[/8WWM6A/%9&:O1:H*[7CE<&,#3LL9KI2Q_L-)5"E0- M7('8;GN>Z+E]K#:'-02XA(LI*X.VX-[-HZ#9G-4;MMW>$!Y2??4@+7%NH#R5 MEGB3EO%@I6+_;DK%[3K$[Y.'M";K/B*[R/VUQ*6>TAU5O]MWRX2Z+DLMYK6K MM]0V>=O69+%G*NPJL]I'TO1WD2?>11+0J74S].+FG&T*7MY);2]<(^!AH]*J M%RJ)-TY3S!:>9 ,'E>;!;6:&5=[ 7':2F5)7P=J-527O^[B395N,1)1./3D-N=GEG,RR'E/Z2[CI&:D2K/9 M*D+10F#,NY(U T%]]T<'0>$]\:#]%U'XG6'R$)XU)Y^:XE*%NWX\?C6'<#(' MZVI@U\\9S.N7,(@BGI[17*6W/#84KVFH>-S0&61V!D.WM[<%==$?LWO10#ES+6T2SN0*+ MN/W!VS$Y;3 ZOT5\*O7_#K,4$LL]WGP\[^G$ZE;K+#>K68_5+-QILPJ1QY.M M(8JK^6-T'T8$2M&HOTQ+ &,$H7UIZ&+:DU]K!RJ,N-=Z634&/2L_8G96NA? M_44I!M3?*N22D]2LC?IVB6V\SQJUMV?\P7;TBCZHOWW%N=Z[L%PK>9RJR6*% MNZG)[;2)_W(-[-VZ.#/S<$(_)8MFQ>"RZL(FLM*XJRA["]ZW"L=%?VW@P(QQ4^&':[388%CQX##],@R M12UXO5R"Q:HN;8).TY3X7(Y^FM2>V[,IC^,KG(D3\M)$7CFC>]-ZYP10*-MT M X:LGHBIU4$0"Q7@H(GGP#J]%'O3NE2$1Q0OG%8SL";+"AM<#P+&Q$@I;LNEW @[ MI;T&BN'2)+$NS4[E6ERJD&!CN*DVVTE$QMV+[3J6; M^C.>ETA&3*Q2M/*,K: N ^:E30,-Z[-3LM88!JG77J:U*--1N,%!.@R7^J'B M.^98K?*[>#I9+Q.=L6I7URQ<9"&XL5)PFLG*#1\<^ :;!F9/435V2FF,1CJI M*;=C$P&>GD / _V)05(RHJ,\R=6$0L[\H\(U5X22NA@[E_;*T@,I<0A90)K+ M9R=K6WS@Z,M_3H]!C_$=A5BBFWIS?[UQ55QX>)G#WC*N-I!>SXS"P.%TO0YW M7)N %3+P%#>5SFRT62'7I>GA6>F]F#*O7!\6J< N;?-BK[J;9@^:,>!M0+ _ M$QG&6-.H[9G^")$R!4ZP=Z'GZIQ*?#&K/]M8_ 09_O- MCNA&L<>]?C=/^\N56?C^?=;]5*99/OZ+5#!9MOECM[4"EL_6_(MX0O]?_HC: MEOQ_S/+_#W%6S8.[G]7B8IOS4M0M2>7U]4XJKV^2RI>85/YT)E?26%C[08,# M]7I%O; -2@[P,:NO6G/WI=;6+3NA_3YH3^W(E5;3BU;CY:1EC5_[;*E(G3$H M6D$_E*,!*-.AZG/!K#FT*V[.M%&O-NK51KW:J%=KJU[E&.[J*"KKJF$=3 FF MJZ]BX;VY;%EY.EGE"03V^A3/6'WEB@IB+QTPJW Z\T<_+5V;6E9\0=^*B;TE MVHQ:QM1W7\YP?;N15? 0OV\V7TYY:FSW^HQ*B+.<:/9*RZ6"I899=Z_,GZ;; M(\03 X?*],6$D5-OV\U^.LL-B<.U#EY2PCPEB%6U_6Q:NZ5\@*N!3]1 MTIN[UID,VTYPM>YE"=OQ1!7X:X[,J-<:&)WBVRX^9JSYQ&W3<,U/AN-:BV;"*9MYJJ+6MANQL-Z MS7X6:B$]P -G;+>4@'$:U<;D./:6[ 5G )GHPTU%[W.=*DRM6BQH:7H"9)Y4 M!IZF-VNU5)BUP"^>(;B)BR%'^!Z,FR];FCD[:U2]<$H?36O8YURZO()*ZGA& M_;>8OKBEEJXAVVH!>4UT+"?*:C9>3K4J7V_ZR<=Y_812OYE$7]\8=A%Y/?*(J'L9H4<+Q0NJUI!6_OG%JOS3SE?^.4DK M_SQ%Q<-G:;=Y%K:8E5_WIFC#ZBYU4[3A1RS:\"6),A12P?L MUP_7N/!!O5([J*_Q^K>;Q6F$/T+9ANDTL^=3MH%[V%W\\GA8(-.S]>Q08V(\S+MU8\2[]5:34V MQ0H #(?%)6E_+##,JI/\0U1LF(KZW11L6)!3>Q6B4*>-'T^PB$W!ADW!ALUJ MUF$UCU6PX=%*;]^EAT,64%PN19Y.E"V,$38&NVDGGAV4W'PYD?W]#YWW/2L2 MP@ZQ2(L-<&YG.A'Y?=B9=TO]@X)BX+;+#G9!EHB[M _$I%NSO< 'Z.3!E 5? MK[\3F()!1$]VXR",M+^20:V+?/A]X07<[?I%H])L-;C#WRTEVBN"TGJM4[=Q M[$6STJR10<&:)>NC.H&&ZPUDQCZ].:OJAPEAXIYJ$0+W<%\#ER(?3!]I"?00 MQ=3M57<7=C!@'\?XK7I1%3WN_2CZV'G7YX;3$4B,89Q5BPB!H*[<,(E$VW4J MXAQ[_?:( DXH9=[MPG: KMQX++:/VNPJH$T\:NCW! N@0, M/(@S4;0$O-Q^5;&"C;COFY#55^)%O;++MEZK09S%(@"E^D"%ONZM3IPAD#YL MEHL"7 REYXGW6"0!'[']U,"8MB_>MU\)D"$4(^:9''<'"M2BLZQTQ!G&L\BA MV#X[.X-54L$'7IBNWHSSG@Q'7C!6"J!$10C@O2-N?\E+7D%G_EQ!'M.M:<7V MR>7Y*PS4 :&LF^C&K=R$/!G!O@VGM3KHK!P2YB?E4BX.!U:YT]I[69EB]O8@&=? DZS77\[; M;[2QWJEAC4UJV'-,#7N,&APH7<%%XS$W1S#/;C@E9,RL&'M])B QC)F/Y'L] M9^_K8+XB'D3O;=+!'B$=;)/4]'R3FEBS1?I*8MVP?HKZ4*GIF@:]&='.\#P_ M*%EHIN]_5@F)W4*OXOTC%QYU]?OU0J_PW*M?NO&8I[P$I&"^2\Q=A<"X4*AS M7/@P1#D!6>^SMD4^VXT]IB\59Y_T1!PB",]-$@JRGRZI2DMW.FPWBHGO!I_5 M\I92W'=FYE(>A>X+3^H#2/CPQ YKM<*6W0LYT 7185D"_HELP&=G9VQ^<28598.MF:Q=_D)2/+!R/5T M),KFPL);>ME0VYV3C3T.%>[.28./>1T6*AVYW.0;GUS9V+;"^.'[QK:MT];G M8!3W"'%<>M/DQFA64-MSB51J%L>TWS]2:FGZ6.5FQ-'L0C@+3ZH(RX#&,0/2#P*&: M\I$*K]PN%W#H\;QV_?336'14%^M/R"OI>F1TC@= 7_V!. /:=[OBH[P6]7IK MYW"_4BY]\]%ISD71!=IMCA+M2/MGT"%'*_O-/-5W(X\-]K0J#%8@ R Z/D'P MQU=0AG1C\^G%^[9>)"H#I!E$NE^ 7E#ZKA<%Y9+CAFPUI/%M]RQK%==!XCF4 M"=TAJ[^TX*L= ^1X7K@=@<&^_&TV=73#Z5/?ET,*PW\/Q,8NN=B8 SYAM!#?J5RXQ$U!+T> M$ 86:?^FQD)IGSHC,S8@,9\(1K0 R44#G:=$'[1QYI=+O$1,OE??5=AU(_8) MPCV&] M(23Y?;'N2#8/(J9_.0B9T80DJ'(%-4M3W$2Q@S6-,[-,=*ADEH>*@ M*.5'S"6P'@R SZ4&$UQ",CU<*KX_ -CNL.M_),=H0:!CM XN%CWIAKK6!QXC M>@[[/MPK@$X)H [-0?TJN*O/E8[$T)$N.O:%T8R.0H]-7#A4?R:N]NH;'-3< M%<=4W[EH0^KIE]1"5(B:77GHCL(,!!O&#C* M8YC3KVG;CF@Z0H1/TI ?!F9T527S15T%>'UY;CRN@/ 2?=OI8;<'%_UJ*HK+ M)?105=*"'>R*P])%V BC;_FTB(9-+9JI[45Y!$FH^M$MHU6IXL7$(K'X4[9! M&D?'J3$@J$5(1\<+6N]-]^OA11(X4M2+!VX8CW>HCT@:%S8<*L<%*'C8@45U ME4-M:R8Y,OZMN6Y^KRZLEWQ^-E^&-;>3/F )5_FA:A^P%"JP4^?WIP\C==4; M@2IC'V1SC$/B.&,QQKB+-2,2"CU 6-KG2Z=I'W*.#,HE/G/D2C#44$=#&9*# M:;^I.*.\HN//X>B;^T4EK&X)$ZUJU(J,%(MWT]NS%3GI+81?A]6FY/CX@04W M+O"F1*3S8IXQY55.G?13<]TQ0W_&&N>M6'K[1K?>U:O[K9M<^W,L9'8]UC78 M?Z.Z-YW8=:_]+]T:>B=<32]WT&+4Q UZ8QC$K:=T[Z.9YSARA=:FEM6L'K+\ MJHNGW6F&.RQM90&P6ZTM$@"/:3&]'_:2OJ;%R$S<7&$$;DX5MKT/!UVA_33N MOY\5Y8B.BUJW[ZPO'_Q+A<&/R@(7M_>5Y7Z7U!@R;VK(\M6T,H8**NAA.SD] M;(0)@);JM70,GW(#SB=S'4PU4UH9O+W7CIK5W<-%8>-*NJ,F![LES:BYWFE& MS4V:T7-,,T)+&+!1XIYYPY4Q'%(S8D>-R'OBLTM&ESAF&73*T(69W%AM')EN M11O]N]+7#D/$@2YF45.)=#0@ZHQOV>TFH>R.JZ(M@,W#RLF&.E&Q.6?5+)>" M),8$6>JS;&78SDA-YF+]5*_9Y*=6GX$)[E8[U8/NB0)[UUSVK/]J6_O.'46+ M.YL:%[SNS\FPHS")]'&G;;-'8MG 6@5+9^IA7_F5GA@GUAFRNC6RRQI'N,T? MT>=CN] GVAJLMKKI(%#:=#0"J-8O3!S=KU1;*]Z+ROQ MZG*L2;3"4+.51JJ#2H'7<[V1JMZLSFA9\@SXUMTEO/H*HU]C;_\9XE^]NO?0 M+:T65SOR @H0M$SKY(T,?/&Y?7'<_O=,E%M>ON=]\H=7#4VFN^8^M:G\.10^ MHB#[(SE",Z\X5U&0A%U\[J/KL[67:[LAU_P8 *I?8D3IL>K$-X7D'ZQ@+&-F M>^56I&/AN7\FKH-AJ!2]B=9;3"G&TF[EDAM'XCH(OR$E=S5X?*4_@G>#<%PQ31.I,*=RKQ#5*KKA*-T]J1].R="'X2,=P*WK^G5<*L09 M90.52R,YYF'@HQ#C5K-"H/"<>2,_SDTS5G1#U$YL@LAST;$6C#0^X( IN,JE M@;Q2%!=MZMKA)4OE J7_S=1F]/MKGC9@J(+*GL+&*6W@EL*>Y1)%Q[ZH5_8: M7,O1KL<''S>:E+E94,=3'.ER@C1TMVAR70T3.S]>P_+]! N3LD5_*+L#(%E$ MP!@/'*.A,6> ^MU6X*9RL5-J$,2#2$3C*%;#"F!Z/Y0.IV?%JCOPX4;LCT7Z M&M> C2(U[ "*OZ:!L18JQVZ[0TQ$4)0+D0^N'G#-V:$;TY?4AG(HOZGB30%J M2:R8^9V0%"9ZLKEI#:YH:F5K?L"35""!Y F7Z>0 I$A1 MGKY:N190N40'*HEW5MCCE\8):\8_72E0A\C#*$W H;T:IIL=P@Q *Q]/WW\Y MYZR$D0=GV:@V6B^)0$/*4_"#G#[4D1X6SYWN[ LCYCKZ$HD7O*D]GA/;RCK2 M1B9C,UN]J7N*[;MW*$=EI+LVPUV7]FJ^-(/"HB,LO\MI:A*X7Y\+4H\\Y?0+ MO*NAT@6LX79"UZF'X\/O\1A'Q;;H^;7B!$D'%Z")H5Q*H@1>P[7QS=8-D&'Q M13<:>6Z6,D=W'CZ2'P58N;JF9?@PDC>>B=EW$9:>%+%IHRXG#C)[UVE,Q-LY M9=;P(Q=.<@+(G-IH70RBI^ALNZ >]=7LU)C5 M C9J7"1*=&KB3P?<);7/E$ M=>DWS[\A<)&^M_3*G0MON&LSU_5;\I):TBY\R:>^;I[P>OM8-REXI#)D-[9\ MW7IW+E%DAS6ZTIO5U[6QC/J7*7.W>OEOO_AN$WU!O!E4";6S+-MH#8NP7%KFZC]W^&=1=6AZD#RJM MXG)B&T@O&-+;3=-)YG90S]%,XSA^#=2VFUR_)Z!^P4] ME'FJW#6YI76J6-EHS548\$Z-N*?(YYZMJ!^5YF]H1'V/=:P3"ASL+;X7^P8% MU@H%MO?FZ^3\[/K1[\^WY964KRV#YK(EZX-FH=KU5&+1_E1:Z\S#6-XB0"ZK MSUNA_G' N.#2Q67&2=49EAS416VQ6"KI% ]Q&=X"'K>'O5 M*WO%X>L/$F'N#($'$$UC"L?F7/I419-U.K>#_<.U/K6I6^A'.+3]YNZ2M(75 M%QRXPP!U@>0TN8KM\V8]LKI3S<)4#H.?EK M-AO;;&RSL\1*-Q=7\#X\W&UG)C MSR<=^-1*/HW%B]2_59! 5\&$B]W&RW+)PSS1>" G\Q!WE.]4Q9<>)7%4)E+S M#O9?X@#7^5"XBMBECWNY,!).,CVD;T([^+DJVIZGDW;*I:[.>DQ-]_A\UG(F MP'J(V$@G&7)3K2CP',J2P@S*:^5=89,9/QZ8A"%UI6CP;#RJSIBF(^G\.5KI0OG'8S C.P42Z#9V_80SC$-%;"/R@NN=87"%&819 MUGRY=$WYB91;U^5D=VHPZ:,T"L>A&Y]A%TK-%!+=3LHTE-346!536;;U?)9M M1_6!ZTGX+.#6CJ&ZC41 1/H#@.]0]+P?2='I4 M/J^J1[TOL5BEQWT7Z&WNF^1[[C=DI=8F="XXTD"D%&$<5X_5Z;9FX7IZIR!E MNEZIU^I92[?=/=/1+>@ PU38H2K=U40-V*BH"*QIZE:A-&%,)P:V.CN'$?-Q M%HN*]QFQ;2HOG%N5%X[2.@@G:1V$$ZORPDE:,>&]KJ-0+FUCX^M&[>W1Z.,49JSWIR='9JS'RW3]3U@W)4+PS3 M6)/U;]X=WS_N;E336?/*D,=KHW%EC4^TR5CMKK) 'WEP-0 M4SQN0-03[A_%O7KC+8]WAQC]YPB+9>#"NL19W3D]XRZK><* W&+199IW+*I%K3=J.PVYUS1)GI]\;=^CD+0FK!TAURE55LIDJA7 M]HMK'#P=2X42)&P]DZ2S[U2G.O,('HQY']F@_) MQES__>\U"CG.#R'[3E?M7O,<@QF\ZK.*;]OHBD<\8VV.%4D[>$HP[%4.YF-7 MSQL,VZ!<%>LR/T3\^W1?WC6,?Y_!JGZ(Z*[-QC8;6Y&-/:G1(>W4*C#FA?NG M8IEPLDWOOXU,))M5U]OUBWI8B.WCBR\I2U^6=CYMWWDJ.\'>'$4Y?@CT?;8; M*PH 7M<0X'S4W;#C^HJ+[E.K!FZR4="7IES"9[#%1RS0/,DQNUS-7W:XSP?: M7R@8SU%8#A^+N@^":S%,J&5Y-,C%UE&LK<)(,RIZ3Y7XX4 XZ#;$+Q*%"T"9 ME*)['1ECF%N;5UO$=WIN'QNIAV[$'!.+QVFF>$O7XHHICAH?PH04;8K.WL44^%:#%M*1X#$0K<,'CX M+U)?24%0.(8\4F.9:#*LL*&#"A%]AF;<6 (.4/L#$WH981QFULP!P[7C,.$> M)*:S0[Y%# =X1QSCZ7D84@WX4BYQ#":V5^+I*KKGC0E83&=/O[>B&7T 2%%, MN#_C#OS'+;=?N31Y_0$-&/2!E>\V"#DF^[DQLN\=Z"\GP:T[:42!I3FURZV\3/U76*4>D5W9.'=F!9%(QEA,'JH##2$ MXUZY#A\=-PN).*RQ,3EM$1W*F*G#M/V(!@JX!M%O/O(^6\7$DM,XUR2,!^+/ M1(8Q'PM^:O( =-@N-4%R$;$ #_=>BBQ=P5!I\3!V0Z7+V[RHA\#(,P:8N'AX=)#)GO!X(ZF)\0H#?#*;)-0MMIK!FG0V1!2MGV[0QJ%SR8-!P$A<*UL' X:M* MVED6AL+,2QG\;I)?)7(?;IY#RY@]2L$I="6%8<>:*NFJTZ\#I33VF)")JE.P M8YH,WT!P2%G>3 &/H\,Q3([95%RX#$U8Q2P/MGT;KUOOUDF3@4_$''VKR=0) M8& P!F9VKC 3P\4N?;H[8=>3[C#KR&,.P##"2&'W'CAF#\X($-9B&6FP^W32 M4=J,2Z,0G'18.$BY='-KLL8Z@/^28$+J4]Y=*; 3FKDZIFOHM M$5>PF&(+53[E.YY[C24V.[3Y@1)_Z#ZH0<3N5'HN09&G!@:M0 M/?9@CC"CIX_$R9^>EK%9H^0FYG>@^3M"NB>U9I9!A-L[54X:I1 M/M8L$*,@BERNP& 94WS5#V*7^SEG';Q1'& +'-9Z"*6VZ4O/"ZYSKZ--!28B M!;Y<,N:PM)>YN8&P4_V8NL:3(=ZYX@[3/1$-N"=]5!6_^8#;<>*3CZ)B=Q./ MT"=%W:;1>!3BBX!B5)S!;(I-="_2./ERR=BSR=B [[%I;LJJ3\;Z>NME9AQ, M5S]9/8=Z3*>/ ?5XVJ2*;9*1]\I41#:&2>:VH]QU/56"!@9+[;,R*C09$^\M MXL]G>0'.YO=YUETMEWX!3 C1?U<1;B\3]SJF^@&"=H2^0.H G?6@YW;9B%LB M7RA'P@ *CX]PBJTZ0V!0F69@69R$RRZ\F9Z>G(P=:PDS?4OXBK[28CGK/&BA6C(,K=&A+*7[P MV6&M#[?G9J8ZTZH])>\5=(4^EGUTIH&2F&_*-S1:H\,ZLY+V F2)B'7X'4AA MP,H68[3 S]K:BB<&SDQM;II25C

CF^MJ:Y48< M]"W%"YU1G@[#AJQRZ88XS%DSIH6A4VT^DD,%@/)]Q;&-:1@9?HXF/30URES MNOC[WYJ[;[NF#B@L9$KH%#D8&3A6Z$6L[ K0C S7JUL1BLU_9/RQL:[H>%AM2[WDU_-^<*6]YE:IJ]<)#?RHIM%G9/[C' M@M; .1HOFWEQE4YZMT:99:>S/U>QT38TV\Q0@6WEKQ9PUR)ZWT6;. M0F0;D\W\OH55N2SON)"%6VR>252924L M53X4;9Q.62G "DB3SBU,*1 M=)UGG<[M8"%B! MPH!5,Y.QL5"?[C[[2ONA<5R&_\I/JL+_5938Y"6%O_A)AEU<@B#\W/,S[J*T MX#] _:M/VP*(3]V&<_ R!.M%82,K+?;WSA&2WC*R-I;;$$E"=PP4*0;!'T-!L[F-5T*GICB*)HAW%O!4,;"6#::ZLB-OGS8[7!1&A M$X:?70]=^F;/PC=%UX"W8DHYT,8 ,X )2QIFO!S)U29#SU;["M[T:QW;!XS> M!*[\9T7Q.<4+E>TN7JCDQ0N9%B_\W0D6[+Q/*8$4WGELV9:IW.FVY\!M J$. M=#7%%=; Y$WA$VAUF'/M>[Y9 <-74T=/4]NE,;XVRE17H3&U_;V/1#'[TS&0]/KCQS9M]V/0-'I%&()5J:M"GWT#V(T-,EL=L794H>;8,ZP. M=N(9 B9K+(D_/-CCRV_-DP.YSC@DO),?]/X>)H<'B_$V%M\MVP"XV(*7=D\! MY4?Q^[J$">:TH]!I%VLBJ">]B]*+ON!>UP@'!#0%KE731D\:,-^!3CLO $=4 M#P1N_*&RJ)<'7V=[0KTP(V3)EL/@:>&T( MK\/BF::JHZJNV+<$.;7A6&'P59MH=,/4$2R* .6(#M.EN@UXQP KJ'K'[H1A:<*=[>\MM[5@ M*X@O!29K-3*D\7+X$W92 M&LH6YCL3J;R38T<",,^:B(I1L)["W+H@$E.MBEC751@4L '9?W[(/W M#+ [%WYF =_J<13%U #X*&(!7<*O(%J9A@L<@5=RX=1>#@X%HA\R2D?I$I>F M)."K@KOU*SYU6^@J P!CO"N3XPV'P*$HQQF#@-T#4#>HA$Y@?P/A=#W<)-:M M @)36/"+P6EP, 9P#/.@.YZ<:"0;^4L/QCZ>[ M%*M915;D2R9.'>;/4T-M1+_@$!4=$_[1X!7U@:D?.$/=1EDF\NL 9AUN=VS6 MLJ(A%O+K8&.7U3[1/%J+Y7 5F&A8R05,:,OI# 7#0/F-Z!N@97C;_&Z!39I\ MHG2(W-RA%!87,E/&W'(=?*/6]K2&5I ">3PQ&['\Q=ZDO#OGI^PT _7V:B^#LDI>&0^$C= M4VBFEMG%D=EJT'F-3;(.V 4\8 U&W ."Q=]C^H49F.&!S^/.,KP!_7YXQ!'G M440H.R1*4-BZCN9. 4-T#1*13/A6UJ0 G$)VV".,D]N);E,P"DE*&AF-P# MS#8%.]:L>Q.P' 2XIFM<^<.":07'ID6I6JD"KE+-#IQOH=G:@ZH'YJY7/PBSDBIM'_/C:O3MM!0 M&8\Y;C1$/,-)O^)V(SC*SS;*^Y%PW$OF^(GK M,!]9= O46J'"@KZVJZ"\0'V-MN\$YNG24^?:"K#P_3U*(@%T8_0*1P@B0WPTJMK\P9?-*=VXSI7*VD[C<7!,](49(I70_*3DWV_!F@S:O M]4U<6K!@4A/8IMHX_ TTK-#\0P63Q[NICX;)G. AZ@%$L00'O@T'E@$J!AY# MZKBEUMDX'M:B7L7P(8J.5-S3WT&N[.^=**XR]1A3@SU[$3/_MJYY2@0[%2I.FAJS0Z9(G#@-?:MR#-8#G9T\!D%.'J%04G" M;C8.;SR.NA1(!"KN3PW6AV^PK M6WR95PPUZX>H:8(JQ;H8P:X-LV9,_U?J]<9OA+@=\M,4 M<3CE!BR),-/FNB;M*&]::&9$#H4W?6.-D'S[DWH^W*">AQZ60K72 ;I-;(=[ MCSD:4\LE.*N4<2@+= GY'2H;MF4X#5-KH7M0>RIYZR!Y_ M"-%<_MG__JV_/\56@8H?6PHO%+N&1?8^#/;^]U_Z^PWL2A3+NH! MX3EF.)E(]%WT^*/C#>!2,?&,!T1Q'?P#FQD4)*OM[PT!!2PMIHM6F \'MV S M-SRS]@=^X"3A=H4GNWVZ4;#4Y^X4&*HW\%CH&@$(O1^\@M2S(X&K:#"0.LCZ M.NF&Z"E$L9/]+<#, '7%2&- ."V,@<$I,6\4-L.S-9:XQ_>MS9=ZVZ&TO>Z\ M68C_A5Z5_] )1'C/ @WZ@[Q#!SVG)>9@#3E 8'T<(D/,5 W5@V/+BIA M\=O I<=69J<= 2J8GJ-B>-+6T2!P\61 RPU'LM!6C522"6T\/N8JC.:U!/!? M8W;!/4 2R2-^?7R) [B _37]<^2ZD'!P0#_K,7OBS%8&!&.>8N".A2\5)+EX M*!S1!$_+Y%&,<#^39QR(.B$JZ<82WZ><]-S;I;7Z@<3#R!(F4IA^1TA^A-O. M]%1@>G5D9Q%#:,X1^1ZB_*=66GC7Y@D MFP3"+#U7W49Y#9_+Q_O%LDDSU#0G3,RC0X&ERT<>>1FNLPO+G.LT6&B65X;; M\OL\ Z%%]L"K:?9; 87VFI<70OP06IIO!M\>=>S7.F(V0X (@HR\#2Y /\K M4CU-+C&-@]8/V6$) F]W-&:_<7[5LJV'4>ANYN8931726!39-+D3--1'&Z;I M 5/[0@B+@((&A#4*?2 ?GD[4P10[@ZHFEZIK845GH1!TCJ8NKJAUB+DS("0Z MHW%7:M2'BI*!>W+9\OM[5Y2I,NUR2/<1!',GLSTGM^E;J[S.]&$D!H>%5J?F MV\)R0>)C3[LNMSS#L_.3:8-.XQF[>7TJ2=MMEV25.?'?VG;'?VMY_'?[X[^! M$!F7(-\F!,BW[2;/& WH]*&O=_3)>*)\@)@4?3.]ZM8"><')Y_/7+Z<5U6SAKGI^>"(VV0+'\\DRX_MAL"U>GK!8$K8Z6%B^VO<\NS&8N7%CS_8Q[/H<4TP/Q]0(3H+O0((31C??SNF-#P? MI$],PFU%EN=>/T#60C:\(LEEOM;?1$D^'>">EY*N>."@*R!-8:4730A&@*Y( M3W=*TS\SK/N9=(D/"6>L859.C3DU/B\U;K%">&&YQ+FV8@N$Z-_0 M?SA&B+%U0@>9J80;Z_T^_?&Q>=2\;N^,?WO3D+0XAZB*VR;C&H@'!FN6&:8: MT P+!(HV>AP=&,J]DXNIG<#Q38)E!;_]=E'9%:&5FIIPC#C9I548#![NTPC( M;D:^#P@]'KX67A??P,G@EWGFT55011!4;HH"DXT-KX>MH@HE49#KM>)A3L<[ M03N;!,LJP8'M(N0&J)::GQ>8)C'?O:%!<23>FO!_QY9IL*[JK-3%YJ3^_WSR M;I,A*+PTGY!2>#VG\!VAJDV"9:48Q$Z3.,%&N]@AEI>&V>1 (]AD5G']7%L$ M#6!N")\\$]O,MR@;L*D#R5)O65&E3=@76+-Z_I6")-6";X4U;UAUAL!,O(@- M\SB4RICL+&#!+J&%32R!EQ=J1?LC,VO9+\H*?L'#_8D])2TSPE[DBDCA83U> MHYR- 3-?5V'<+=1,6*0TLD*9K<#;W!ICW$VNL3_FW&TW.,HFP;)* &J[F%N$ MGU&7-:TZ8P M8GC )_]XP(^(;8QB;(]_VD>!"YR5S*,/'+G;!0YR0'(N2I2< M"SDY[P8);1(L*P2KMHN:CYAGSF\5\S#RT__N=%CT@Z?C?'&35I4FH^VYA#V% MK,-A!51*HR"G\IO!TQC:NB'()?:GG.)?"I65=LU9WC2Q^3>++FFDR_L_(#P4 M<*K.TM[NF)'!,S2BA7>L?)RU-,II8 =H8)-@>3G.=$9K#;^S7&!^TF 5:S*' M#8=T(%:%E[9BC:J'[>3HZ+!K&SWBO&Y5%"X.&X?3;-("M4EE9I,:Q*5%KQ8; M0>:7][X.*)S7LM!^4M3 9K"^\=_NE_[REZ+![BI8<8;K!K5I)1ZK%OVQ%/H= M,4:TO=(5WQ9U/815:[Z(KATT!+GP84SZTC[7W/+W^ 00?'_0,"K2@R52G&";(L-B:/:>C F*^0YP? F)Z2Y1#IX"1-WJ--_:EPO4,%G M=77!$63,@^:'_]BGA],20YX>,2\<+?U[=IH5?ZR:[#$YV6/E5-]6*XP_%S\< M>E8U?WV[J_GK>34_VU;B:OZ5VL L5,F=K#Z;&OT=C9HB]9R/[<4VB[M M,Z93U/,!(TN3&M$NY%U_X4UK6/\_175WU5P.1&QX"<]%?;ZHW!Q0*FL"976[ M.50S%H#X>4FL($EEX5H9&:!+GA Z$5=D\#1-]9#'I2^99MLRX&510[4QQ&IS M_4$X0DWUA#K":*_+B:928J1UU (6:&!\,X *51HIROW&SRUWMWC]EY.@1O,G M5B;LX[40=B7/Z-AVPGKN]5]07EI!D@O;0MG,!Y4G=VPQ93WW^B\G)PN3(C95 M%Z>I&PP8EME1R6EZ>VGJN==_,8E9-&*\H20=:U[G@=YMIJOG7G^5?@3;1=C8 M61ULUA(G;@:*3^&,N$\'0\,:$<*IO,4FRQ-*YV+"*/"AG"#9HWT (OD,6(!P M81T*Q6+Q0)9+4JW,.O8>=X /AI%?AR#(]A\'2L@Q='8WEFS.UFQ5(R0%?0#E]- M>_TDM+D;>CHSFRDA3E23187S)\\D?O5R;99P;J G_^I0^&R LJP^CFX7E%TSJ#IYZ[[;>=T)Y[_42$GE-Z#*6#OGXK?#L4OJ@GEFEY MO?X"E!Y'Z@R4L(HS)_4=([7G7C\9J;\D6N8E-/ITJ;A2A^6?^0V*S?AT 4&UO^.-$]YGK/\FTGUHL, ML1T \DO;[$M+,#"9(!&P"=ZK]U>G'PZ%0J%V6)'DUXTW MKV7Y#=LI^W:#4LYYU Y JT"2VG#N.43)ACE M@%&N]US]V.@KDWNKBF*I+HD%N2CD[#>GGJRIYY@3"QH%CJ [CD>=5U3)\$F( ME7D-#<5T!,]!_<&UB>)X]H@_,2!NW]*VA+YF_RN+E6HI)[R<\#9&; D*$.4 M?]!TPT-2G$EHW(5,7?-'A@+ODH>N0"?-!OYEWTW/_WY8ABR^QH4I\:6-VLMK>>G9ZX7#XOKE MQ;\$690J!;%6+^>R8AO):Y-@65%UVP;R+B0G[WB-,=0H-X'\ X])U)#+&<$V M$M]L6):8MY0I(1TICJ[Z4A]CJVK$FY+$VQ#]%X0N6'AWNL92\E8GTHTSZ_Z5 MY!BDPZ*4T^[NT>Y:##Z.BKFYMW/HLVDZX$Z9>\7^LW8W>O2 M[AF#-&HP3<',6<8VDNEV&88G2/_ ,98R#7&,==007)E M\$0S,V^]*AAT_)9 M<[Z[R[?[[-G*4IZMO+."/4\3R!%H)5BV-NUK2[(IP=RJR:)6T2+'G"\A;&J)G3)(]+;SOQ M;5=<.D]87CU.G=>C[B*EYNG).?IL#2POS+C;NO3DW+C;:O+:)%CR].3=,_UH MC"!/3]XE,MTN,S!/3\[-OIPR\ZC>QB)0@CD-Q3E<9]/2I*_[1&B8I@>F&!^E MXUK^].J1\!%>36Q'\"?7SJXIC0S0AI?0J9GCKXY,P_U\F/.M;93BFY3_D_.M MU-C M(+PC>5;;:_CZ)JNV#JA8\>0.]G!?+&9 MQ8 8=&P- (11+IO29"W;J!(=6Z:#(VN LS1!SQFBLD.G#2*'(39@3 L,0UT5 M&JIJ>::+[JLS'52;H4U4H@%/Z:9BJCIH0\%$'"='M!3OK;AM M,NRRV]55X$7'>,GP(V58^1"TK5D_@9MXVN37 " M*Z<*G#SQ7'C:248M)( M-+7#2E(9L>**]#R#X4C[X/KM6/*/_F;6B\YB:V-]Q9N'^5FE\:1%=(?MXX^IIK"F MB/HZMSX5IYL$QK, *Q M#P:50TE)[9.!(IQ8JH=HEB/9EB#9<>-\>Y#L6#%4GW>?Z^9M1W%(CG+;AG(G MIV?;@W(GI*N;>HYQ6XUQYXVC[<&XGVX-L+9M@@LJ"(G6S M(E#5A(^5YP9Y5O+RT__(NLGO2*>I/O"Y;D[Z_^?$D@K;'4LJY+&D!6-)"4([ MP::6Y@ 3]7?#U4%YGE7'#X#A ]94O@?3[=[?DXN"90MR^;7VQD\@ MYW4OF%)^^J#V%1-HOZ'2+%"Y7BR)$UGF0E]Q!,TS1H*J> Y6O6#)BQV4T72( MX,!1L-1C'9;OD+YB=/UD8]H>F#T@[N_!)S;Q3/@:?:/BN7W+QKSEP^TG_>57 MW<: .W]YH?[OQ>M&HSICHESEQL_SRROAY/1;\_BT+0K-B^/#F4JLKU/)*P/W M+-4WTW7JY +E]55 P5-B:2D M[#&NLM4_))6W6*.55D#PSH:O4W"GTJK\Z<4 M1P3]Y?P%MV&Y_9'PZ5!H6\-;*V:XS]0DQ?**>UFR7\")XI)$AUVLK>&P&UX/ M;!ZA4'TZ?_9YQ$=V#K!$@GL:/F4JB-8AXE[.'4[-H,JOI# MQ7AZGVM2$G/U,U]U(SQTO@-<1@?X?#@44]O^K>>KYK;-B[5MOBCVK?#M4/BB MGEBFY?7ZN7&3&S>K',=TA-IZ#>KE7.*4)'QA=^XRUX:S6'5> &X\T+:_-RW2 M%H;2,,S6(<3THVD=8ECW?A2M"^J!=0\X@/U"'QC3,!WX!D-ZU%>>/3M):V:Z[:IZ+:%#=-M/UE]4SCR[!YQ MG$74VN+SJ+4)C[FXCMCR(L=\974 8X4OA\*Q8I-1S$F_1!4JBGRB< )24'6M M[?0/S]_L! K$[_WN09'SW " W=>B7N"!R*M--)I]UMTGN1*7:[4 M;992-Z7%RVCJ%?^#7J],/S?;UZ=7IB=#Z>G3>/!8:Q\>77R^NFQT MK,U.L*=.:A;LEKQSS55YUY: 8Q6.+,76D.'[:B2-"*[;AW"MC(#S"2?D3E?Q M'4U3S<-\&:[Z >2)@0'@MR]COUG73B\TA5? NM+."*0]G6BRO\?#\CAD,YR2 M P^ 8@=/HG)) ^0SA[<)KX^MP4!W:"N*,QV4N N/CM61#HJE>HT6U,91&7YN M>38/[._OL6YW$U8&M3,5,PH1+8X%P'GH_NG .IP/RKOR"(_E\N% M6HG_7"O5I#K[N2!+E8K$&B32WXL%N2#O[TW%*(Z6[8/:.'8)LQT%_ M4&QE8)G:LTCM.?[!699 NBZ54ECCRNEW%L,1@8%A*[WWB+CE'L[,FQ!DRK_R+S91[Y OD"^0+Y OD"^0+[ BUE@;E0B?6_H!B\:U]]) M:%R<".VO1^WF2;-Q]3,;B!)N.9.X$X8%+L^;)XWKTQ/AK'G1N#AN-LZ%]C5\ M\.7TXGIJ^[WMW&[4*Y70S"MOMYE7SLV\K(/:FQG>W8@.D;L2%'A)JT[S:G?> M7YVV+J\6"B'O[[$83B)E9M/XEA^%2Y(X+B:;I+&_S"SZIJ#8"QC;#F6(U.[>JPH6/[ M>PZ=.C8U"$JQV^LXNJ8K]DAXC6\]9N]\(RCT>U&=D#X//_"@&*MH-NB*8\L[ M8\/&=#;1#(")T-%_!,)GE>&;5)Q'UL5Y9$',%(.E#OYDLI#ITR5-?V 9K:&. MKM\-4" "R6NLDB!TQILQVM^CH4,;3]+"G29ZQYM#.#8:V+,8SHD)UQZR&0E" M5]%M _:LFX)B&'#IH'7 HPB-,P38')''B_UWP*LUW1]&&+F=I)?C> :_!/R_ M(6$Q-<;6\*/Q@Z>]GY^]WMT]\]TZ7%[JQ?&<[+ZQ$35C"P M:;2JDJ%+@A+WKZ8>3*&C\#0&L'-5V7+^!MSG2'%TAK6<#VT_KQE3JPRJ?1_P M:J:WPH%T*)?16@&!Z8SC_OY>+/(K-O&Q<0A/ZQW= ,*?0&@^P= !X$PP/_"; MA\(E#:&/?4NG%$\>D*(0C7U*]+G_Q.OV]^83)\XKH8W1D; I?W4.!AUP)B*(GQ7MP>\DP-!!D() M=NL4=]$FV$7[F\H_W5^^[^'M,Q7H\1Q!OA M=>NX<7GTAB6N MZ%!H@.A6;-=/YV'7LK]W3YX0*3\]6(L-4\!+0,JG^D_"]80.G#'NT=>!AIX] MQ"N%EW".AT^%3"]H%4.Z7:;9F,@5IW#61?9-L0Y^1&4%CY7S6Y,G8O'U-XBR MGR=];2HXEU$B5@U/0\KF&,F4)DLE&LYT8?JG@Z=+A:3NW#I3*<:_VKG$-X>T M0!F/\(%)@)!=,+&K,0&#.$@!.P1K :X_\K"_.T 1!5X$KQ)1E"IP>(Z+HE4' M6,#FT*A?%:2)0O&*L9X!RD>'P:+ICFI8#G]ILETR#8&?,TT9#,&Y4PQ/<8.E M8O55.BH%%\=V3G3N-V8; N#Z@.JI T4CF&88ZB0B*M[W!'1W^/^)-9"<4*N/ M@=0W *@@I.\.<+RX6CQL 0%;0*?$[-SI&PA8GRL/6]T XBO\_X8 M50_,IFU0GOY%09@R-_"SB+I-=4.I_A:9V!JP+0(Y# :>R9J!\6<8

N2T^Y8XTBS U M13'@=U!:3)H_?@]V>H1R?6,E 1MWE5NPPX'9*,#1+8,PXYXK(+"0*-",^@ Z MSHO&P0MQA**-R+D,/NP04'#P+CAH3@!;_ :1!9E1EOKTYBR 5%>IJCKB-[W] M9O[?>K"._C[*!.;$1ROOA,LA-9_>XOI\YE<8-*UL8]2TDD=-GV$^XPPDS-=; M=KUC"]34TT#C0Q7KW#)[!]<$[&/$ %M1F4P1KIC?>7_O"A0W$]3J*Z):/3;9 M>QT KX'/Z>]/B .Y5K.HS74 +#P2935TYU BEEG!PB%W] ?V]?2PSC*Y'-\]!B2K'P79< MWU<>690KGOA+3S]=#Z?W M<#IPH1@7&BP)$KC)/!=7$2;>+-84T4D!O"!A C[M9Z1,8Q_-A MVO*; ('T$Y2(R2_1;H_/0>1OLUS/B3!,)9]4;NL.5Z .7 MV@UH#;YB7S/T)SI[[.YY5R@'!!0[3!H5X0XV$L2G;&L(W-%E;FXF#TP'XW"F M.F)BRG?4A?%$*BCAG-A<9)!Q>[Y@/F 5S+D[R M$HRX#)B]R"$>,8E!5Y[4@$YEJOXH\"]J$-1#@:)+ M81@P\=5 WZ&ADBD*#SO4.R9J+3 #(XI$#--.[:CY,5$5%,6X3J;&;N"4J++ M4('GI3$:W=_3:+::,0IE1A J'+LO'S>#MZ%"Z[%W^1_YOC'B<"_.0 &)1\-+ M4\XFHN> 1NC7[EL=A]AWG S\E]];]BV@.T! -8@Q!!YCKMOX1\9>F=AN(6V%B%4,H7^7$S45#:X V"HL>@ CB# 5Q%W84B1^(G,]^R &KW#1,=?X2M6H#J-+<86:PS,A?&-'1DS ME9HF\#] H5'ND=C\W36>)/&)L=Q?]R]U?X]G=@KWBB/\JWQ8$P:Z85#Y:!(J M517A7[(DB9(D88JA=4^?II'#CF,9<);HJA6I]C- >X:8 :52>1(N)HRM)1]6 M@K70T/$7*QQ*_N#*6,Q8IH_#AJKA-%(ZZ2ACKI2LX@H-%+.R8QL *LRJC+H,A M+*B8!)D:;0>.>1O,(>.O[XM[AV>]^ ?QY-QIPA;\V[-H$@J--?,^33I[,]B9 M#GR7RF'/04=W) P^YH/ ES-[%S@TPN5LN0F:MC-@:&%0 45@>",3E.+;@-/% MV[A_(-X)(.R.#R :%%CS0G/">]4YX;WJS/#>>'@K'!T0'14P.4J OR$R$ "_ M:K^/]&*.BP:./;]]*^\N MJK5'%+S<+9>[Y6(VP#Q$1!L_SC'7U;T-BN.!U>TZ8R@E .KY]C1JUEDX3,9\ M)#0R$7')Q=R^H_:!(JAO$3&>0YH:9!R7:'+GF .2/*#O0XG:DF.:,!H(]AV) MN PQ:^O6M.X-HO7(],QJOH.HQP=V;8Q0E88O.4#%!P,P?#"N1K5[/*2G2G40 MX43/DLORX]#;DAX=T"Q=>'O,I; 8'X]DHNL-C3P@%4-_I((828@$VQK+(";: M1$8S==32 K-IF)&MPSK(&AQZMMI7'#^9=X(6J&9N.M1:H>EJ--\Q8,$T"NR3 MD>+Z;D?8-#N,=/9PPF!"3 N+[MEO=,EC[]("0[#&\#B(_K(VT@#[P,\ M@C!/_HA[I=NTM<$2LQ3YI;*95(KG6C,F*@9^@CH.7N3?Y#.N\*MS)RXRU(D. M'(-7HQ#Y[RLY@)TO[Z/9D:&HMP+>%=WUJV2]U]!W$;H\HEI&(3J*RU]$CLK: ML8E> 8#%\,9*]9,;9#92N0C7UJG+'_JZ<6<5C%=3%ASWJ60(5Q'ADAA<_QS9 M]O#;X)OC59/!E6!<7*(+7&[S"?:Y">]/ZY#&VH"-=6N*#H'#F^4D3BG\E5^G M/8,)Y.?\C,@XNY/:-AW@IRC#@X.&XP K;'0BB MU%5?9M$\BD9UN> MJ1WP [9[G=<%J206BC6Q4"Z_B1E4NPC!HXK[ZCT'E&9?NA@[6.84D_!^MEQ" MO2]FJ/42WUQ@R6W?6#Q>EB-X>:PX_8:IX?^=_O'T.\5 N['A'BNVC3WBJ+$/ M>%IHW@R4X\=2&?#UP_%'^^RN<6X]Z$O@Z_>^[I+I$^7+.%)^34X&9$Q2! M#EO!D1#\R5/CKZ[]>Y[LFWW??OAW[FOBKN5?4X"2"PN^SI_FKC^\-2WS#/D( MAB9,90 OY??Z-M&UOJ+9FO#J*_1!-)S++DKY ZE\4 0V3A,RW?^^TA_Q##N1(^RDW;=L%^M@,:?4<6EX=()[ M7!\IM2-5?FAW23;2+AGSH)"RG&4]A'4Q/7TVEJ6%U*DSA[A+RH(7R*)4KXJ2 M7)B+@:L>UEN>>X#/DVHEHJ[\\!'.L2LT:NB$J M9W4,XEP0ERN%$_1<:%Z8PT;[LUQ<1GN=I@TD(V(?WDCRKAV"3/.;7P1%)[JW M+$B\),HH\2OSI?UVDOCR![LBS9?%FEP72U4Y$YJ/BNR@^J.EV'2C&$^U3&1F ML,7+[A7+;YD4XP7O]Z]1L7U\3HK/*<8CM2LO@,Z3WE46I X862R+Y7IE1TE] MI;-=5<)+HBQ5Q5)QOK*^#+G7(N3>LLE0T;73AR$Q'1(OTG\=U8^.+F[[@]8R MM+V:2.?PT;0[ /!E:.2QEY()$1<*8K4T'\NVDX23'^.*]%JJ2&(A@5VS#+'6 MGQ+KM?+P1/[V?_WI?K_M=+0OQG/*7Y][#*,L3 M_8]C[&OB?R_@?\L%6JWSSV.J5?QR5_K2&WH;$P2>Y8X%RQVO: MTD8=BY"_")5G[!*S8$#%DBC+LEB7RCNJ]LP_P17)'$ZP5"B*%3E-W2?[QX^V?#U]/'\]^E-=CQF)*YLRF+R\G M:A1S.]FHE16Y(-:*]1UEZDF/<4767JO612FC&'!US.>$Q:KNJ&4HIMLP-4Q; M&6)L^X),$J_4_4ID61DJ5B]#PQ6=3 PD9I+Z\+P<0IUU)5E0;%VLR16Q7-_5 MJ.["Y[DBZ=;%$D9WZMD0[]%$.F>;\B"P9&ENV67W7.^2ILFG\DU0L/&EXOZJ MF'].OO?7)7YIUB;K"V!U:8\TD+TOE8>F!$YEH\5)>E&]Y]AR1UZO\K==7N37[WWP5PA'I0[ MAT.4GG'KF6CJ=4F4Y?G.E]S]F\GMK7\J+F<SL"3< %;UI%YA[5R*W7TV M07"Q7I3%>GV^@-UVGK3P-:9Y3:NFPY1%J5H6:PD,QDR8SSF??J03S-MKNY9Z MVX?[);:#EIT[&BMPM7OZW4@JM_Y\2U,_6AS3(D!3OT84[/\(#/ ==R#O[,;B M4;84C[+Q1<'NU\&@\]T]:_U9!DTS+0HV0MCSRN MW=A\/W!0W72DF+?GEF(B M;\7&^4Y+&6$%1&AW'EU\NGG\WCW]9,I?O-^]PMJ3AB/%?" V;=K^]IEC\D_D M^3)J5[0%X8%#U /]X:"O:QJ!9^#&"OI#QS8DJ4Y[T]4*QQ3=,79RYWQ?)MMAY5I9A!.[*W,87TC6VJS[R23* M4JF+TBY7Q"YXG*NFM$EEL5;+AH[EIW3\U#";H.$_;=UZJ)7U[Z5.2I(8_[,4 M2=.29.R.3@G[157,3;VMC,2R7!9+TJYF,"UVF"M+YDJE*-;E^0QR&8H^C5"T MGV\?9N!C0GX\5=N:-;PWCG]85\MTI1IU1F;.%L8L-";/.1)1L M&$H1C,MZ JFV[6&--85:%[_!%;E8M5@1:Y7YO1!2BW?49CJ/(X%79&?(UO0/ M/V\>U?N"9)HM[^-C=3.\R$E*:B+^Y1>ARZQ'B2F+^F\Y#PTG+6%V9J<;%N?,P MXI9N;#Z*HH_(,NFE^[V$>=3P\/1X.[^7NX_?/I^F[;=I=/Y?6^%@_KT M/@<(&WS)P@E:X2P)W$5=.HG?14NQ+VTZ:4:C&VH1N]U7;-A8\T8-YYT<56^K MW^X^_NA=]J)C*MBKI>5>S4>6Z/VJ=]U^=+X__,;PVIP2]+EOGZULA+*P>7$V M+@U;].O._"KXY4"0%@'A4(H-FCSY@,]BH_\'.,&'\N$ ;;=OV8#WVA,\*,5? M%ENY$7QOXOY_#WO=?RZ,R^)%Z>G]GRWV2G[O:L&VC#_EGY6SZ@)G/OG2%'3+ M\6M8& L20;28GA8/44V4) G_MS!F./0-8C2,'OU7=QPO!E.F\#T&3I-^9P)+ M_OQ6[L@W13W6?R]\@.R%F5UG293*9;$0&T%CAX1NJ,DCD),? 9>+\D62PFZ/&P-:9G MHD-;N46D)-9+\XWW9?2UL9$P&HX@MTS%:"FZUC2/E2&.%XQL,?2<4PWNY/?% MF=QK&K_<98J TVM$!]""RB>H#-X7X3B:?U?9D*\HP?]*Q?D^D.WT)"UYK"L7 M"5?+F#B0#8E'59,KXBHXX_F4!XX:JNH-/ .U\A/2U57=G2#QXL7EEZ/S@??S MKLV7 M!:E%PNHS':!'=#KSM4T4Q[-'OL+B!\>0G2%;,TPTT<\^_M:./C7;U\_:0G=J M<6)TU^XHX$-H-: I_T1?-&TV\&#N<-A<\GC<>'HYI6W9!\ MH.LQ4A5EFKJ=RN2;6BG$) M8M,=3U*RC?M3OV7OJW-5_?#M6R6MC:?A<"J7BV)]QL:9NTE07)H(EBN]TP7( MZP4N-;MAB&)=+HN2-']00$I*[IMMUF_3N;(5Y5!!K%5D42HN>653KV1^1?!3 MT1O16U$F!4E=GX]<53UK75<+&?7,7#ZI:X88BV9Z.6,Y "2VUCWG9LLK;9GH MOI)8!0VM(,WO'Y:;[&G>VZHF>AU,]*I8+J^Q.Z%*VN@F"+[0!3:Q-:[[X2!8O=T6$$*7S_DI>)__Y^# ^%,)X;V5F@I M/?(.OO/'(Z8*.%*HOQ.H;P1^% X._./0]#L?!/;B ]<:OA4JB%#\ U_J56A( M:ABW6Q58 [&#;]!72#&OH%KS011,'\!WPO5H"+ U;- $@$]=@'[ -G%A(;B% M>O1;?_E?PS\=A,?P]U^PGYBM=6RBW!ZPT-A;T)GQ:!;<;G#L]&-%Z-NH2?S/ M-=XEUA3BX!#LH>CJ+CY./\>ZW/ O4[DR6 J33__]E_)^RK:BQX#GPRXS95SZ MF^(HW*MA<.6':E#XNS-45/]WWZXK2HT;62[>/$H7GD0^:5UW@%WCO0$L,**/ MP$W[,D0XP&V&8B;X ZUC;M+VT*\FD))978KG6N\$KGT":S*4H0.GZ/_T3KC7 M-;?_5JA+_PZNTV9*-7[U53(&&"-)YRF\45[,G%F-G^>75\+)Z;?F\6E;%)H7 MQX="X^)$:'\]:C=/FHVKGW/Y>7+-'@X HP#_?54,KZ14K][0J$9%DF]N(M4' MER7K4_]*(WWR*HFHRQ+"&L EUP,(>03F_-?UQ?U50[UWM600)A9MBXJM"-0K M/;\,@'$[E^8;CM&* D9* 7F]\H-%6 M+;A](HR(8CL"3CO0A"_*2"C*XJP32X!6R]+ZC8 X\?>7)$[8GK$N1DH'UJ/QMG)S:/>4XK6Q_K'/ZUE"@L3^&:X%E*N M_'L.2G #'!MFQV M-6 ^PLJ!)+M6"B'[@EB6ZF*E--_AF^[YQHN\Z;BQ_-VO>K>IWIU<9W>70N2^ M)A9KLEA>\>;6Z,';8#?&9D$S/WD"N_U<=C]8ED9#"\2^TU7BM('6;@:.+Q)N M/UV=JHUBKWFJ92,2YB+3%,T$H4>]O(?PHYJAK5&16X?RMDI8/7O9,AUYLI8V M_F!;CM.RK2[6X5W?#%PNOP;*9?/\\?;//S>/E]_LC_^TO]U_&U76),F6 M92S3_J6;%(9TERL*N^0QNVQ99.IR*8((60NBHBA72V(E09K+NLYSP5M=^M;2 MOI7TQ$$="+0J2@FF!N>,?VL9?S13LDUH$],/Q"2V8H#JT= &NJEC0S=7OR.G MK+\W!'#CZ =DL01BMT+X<$ M<<[LL4#U.2A!X*;*R1 ME/"&TA,<1;$H%<1*@CXDN8S8,AGQ+':-/UQ)3Y JE5]8DGFR34R,(8[+. +7 M)B^("\+\HGGZV#MR;QYKK7+I%_E(O>38AQ+ED5IF>M9AL6V+,F<9PQWO/5N^P^%%W[*J.!ZTNQ(7\G M0K@5@>]%,& S>$7^;G(N-4X%KC+2WBZ.%)D'_1-/EGX)_"O9B'.Y7,=5DHXX M3YNS4%V0,]'!T+!&A%P1+.'!T:9:^NQ\J#N2VUXF.INJ%N-#*P3@ M"@S>G%?$\(KYUYP];RC+DB@7\SCL KRA4E@[;XBVV:-8SE:S8*O/Q%%E;!5>7W)& M]#K#5'GCEW5D-82A4$0T[ &BFQ[<.X^56J;#>JVSYZZ5!^*Z@X0+O_I)$"Z>0.ZGF.;9SPR9LA:1E9HLUNH)Q[_MN(=C MD^XXS62,DEP&)6B^Z,NEW"Y(N>(3*0?(R%6L(V(2K&0"3/1%TO#QZ%/KV+V\ M:^H;8*FUILH>X76' ;]J)EYNNRV4WC<%A=:6XH=M!.*'!J_'@IN/;B_)>%L M&U*48+5*BBBP$4(M#IEVH./ISFYLOD%Y0=S)!/E QMZ3T4GOI#UL-3,U^U*9 M%#+/5H1][K(/=>'&ZVMPGT8Q*_N8MU0I)+((7Z#+='7D2/_RTS04I4(]D:&X M18)VD^RUS8)F_FAJ?WIMB]AT)MZ1XNAJP]1.=,-SB7;SJ)Q\^.=S_U/_X439 M -N1@D=KFS4&8#"06A@2&T@')X:SJ7VYZ%J/Z)J#02D+L_$QCL#36OXH1^FP MF#=UV@R!M@1*+"WB9B%$K9J+N9P#_&,&;\Q(TF)<3-OM_SA$O";S:S[/H4L,N8HY^N9UE?7(; M=DC)Y\!$*903:()1,-%O^7-J3V/G<;_L>UCS)I*,J-F.@YO'8!>89O.LPVO2 MFE63*9!3@%AA$LT&T,*&XOV2-7J+._..F1>9SDO>\9CWSFXL$Y=0= )1W.#Z M(P(J,WH^4= /00.WGLR5B,R726G4T"I!!-]NJ=>B&85/!X7?Z.T;-6;LX4WD M.US)85\ $AI:)NH\C0?=B3S':(NN\(4,.L2^>1SIE1]>]1_YX3%L)QB=AY-^ M2]:%!J'[L-\\ 7WI^+LDB?72_#K0E2XYGHH"]$N,7LG01TJ"/D]F4J:"/G\N M/U7^<:[N/BJU6/3)"#TP8)$=>E2+\Y,S9E[2.B7L]-AME#DV'<=3T.\%O)$& M:!V:_TO\AAD.GIPP]&RUKSA$&!J*N9@^.ANE5Z:@$-E/)I$=MT:T$\^&/; -_/;J3V# M!IHH3685_FL-Z<4MSGTS2&YX1I;-<]ZS9=975Y(]<+V1:=Q> 'N/5L/>;$1"XPO"SG4("WG9P1K/ MJ[@GEAVGIC;=I;'-8[>>9L?]ZW>_SWY)O<[7R'#4Y^'^\UTAF;%U69+% MHO2"67LM"0)FP\"'FJJ[G^U^^31I\&B'?6WKYLY)L@Y7#L5LC;=^$Q/>-BDB MU5)T[4 WA6-EB'E7.X\-.[JQ3#C&DH&H#?&EUM<4=VK (2'C5PRDI:;)*ERGS)N"G>T>,UA9CF8,KWCW=U M9_!XUNX:*WI"%P\Q980)91!5M?K\5J1YE&F=G/$)OC]3E&D./?0_Z+>]S_4? M^H?J=D><,B$NN236$PQFV10>6]F0"-05E[3&D.F3CG@S^Z.?@FGZC/RYJ7CQ]E0D"U@BA5Y]>* M;PI3?I*:M_;HSQP\:S:]/]W3TX\?SK/EQLL'>C)!HTH15-7Y:+2I6O/N2)[*A)DF4X'^E M)7I@<43.2OBD@+^KI,IEE$\Q!S\O;B_K@T:E^4\O>7+/"XDG34&_YS637FK: MQ8YN+!,%8'$&>45<13?!:O8;XNWXL>_LQM:5B+N=.1Q/ZI8RRN'PR/&]AFCW)MZN"(;+GA4;%\:EPTSCY6 MDM?E/-\\@QC[.%VJ67'8P2ZX9&=B8H:L]XMZ\?4?]_Z[D:41O,3PA*R$\VJS M%39# WW9WLW"FKR;TRBF6CWIZ+])1_[5V3JW9LK$5 1%1Q9+U<7Y=N[/3!$C MS__4/H^N?NG7%Y6-95GUS91',\>Y=T0MWEC>>'9 M$\%Z%A&L/I)3'*'4A5Y_[NS^/W7Y5?O54\EG/&^C[=5B*Q&@/Q MRA-^P0*O@"5>G%]DM,+TWK1@^%N9Y:],Y>J? M."PSNGHPBXOE^A)>RS<;GR3[HKMJ+=JP+OT*B%@2&AF?/OT\^MXJUTM96M%S M2##;PH@L*+5<%.L)ZB)2\I,^&;K^LCMLQ6)R=?C#Z-=+RM')[U6L[^PQ=8:3 M-0M,+-9JTKC1.HTK+KQI+1)\:O^Z=VT\7C;-,VRRFHXRO M@\\7Q+I<%B5IOC*>FFMU+K-?KU=52H*/63'USQ?=@GO[X4'5E0R9^E8:?XD= MJVLR#)ZX6>;I**M\=V&$7]KOM-*+9_JEYH[37#;G??7EDOGYH9QHO\(A$]-Z_A3UX+_VSH+.VZDQKS$N2;5F9BF M]/B1?+\Z\SY]OJSKVQ(X7C9.5Y+$:ATXME3;^8R>.+28%Q!N[^8T=ZU&UDNW#S^JOS\4>]___!!(TN.]CY6 MG+YP9ECWX\>_R'Z>;:+W$N8/QKO+H&&YGINIS:]"I^ M:_-W6IP$/GL PY>57L7I!])\*R(Z)ARI'8D]R7#PD#-L[O%L_OTM2[/S)F-G MS9N2CYU>$!W'U=E9P[(7?O'"5O"3%3*=S_UDM2D'L<+ [D7Q>T923S9OBFXJ MD!K2\7A1$'*>EFW=Z8#T1Z.O#M&:YN60V(H+=], ._M.=W7BH":HFQY\QO\( MO*S1<5PTQ6_THYO'>ZM=.3L%[40*/0Z96=(+HSZSY()]"4JPL;?I))$EO=ND M+]PD:.+QJ#*UN$P'A62@'#_^1+P8WFN/TL?2?4\E2^!%DH'<,TE]>C?:Z<6G MD5'="XO_6=<6F=N; C+_:PK8=/;Q2N]/M]#3M59W_2:OY4SWC..I93I^+'__ MJ][O.LHGLZ^/7.R$YO.H0GQ/P@O+5$'L-4$!=ZXM;(]GJKI!QH[DVDHH&4,I M*,G [PK:@_?@]LQBK;,F.9B,W46VC[X\V]^T8 9\$#_'W_!LA"X:(T(74$&P MRE*TZFJ.4.@ D6@*+ K6@\+&@II\>WLA6*2"\U>5A;D@EB5YV=)KNN@%[SN MI:]S;=>5GFB41;D$_Y/G)U^G+@\C?6,QN??T 3O*DG%V8]T.KH_-W]7&J+ A MPJRP7(?RG$%%0O9/+CUSEI2P-_:+9TC)KR=%%I2P'7,J#"BJ_5#=VH&ESBS[ MQ/(Z;MJ _'/1U32/P#!!C07_HV(94*-+X> UT MQG<\3,767&+EI$P@FN#8-._ )+7LT7<;J/7$NI\P>.I.X\?OBW^.3D?Z1FD@ M 993M4/W=R%8'<(YQ-,[S]XF*DM2SAG2NYP4U8_:DA>S#.=ZWRJ M'.G=S5*2^(Z$<$L"WQ,SI;KAKG+^-4$4KC+2WBZ.'=FK4J4*5:=>.B=+:E_5 MUVY?U>9G^,Q.YY$*F-#3_G9Q7ZH/S2/U^56>X[YB]H@#&H]@N7UB"ZH'@L)T M!<5QB.L(BJD)AJYT="./3JX2G3P:,\U5K DG)X3]?]/TW3@-4[O$6[@B*M'O M,)N>.^RNU9)WTAF5]3_RA@BB(@M^<\ IGC $LD/87Z[HF6<*+H :S#A*R6Q M+BWAJ-X]$WZ.R;/RQ:VB54_K,5621+DROQ=<@G.+Z0$15^OH2*QAS"CPN.1]*BLZ1:\R:[Q1$"<215)[?P^0%\)V4 M[RD]X[T&:D,5JQK68;T?SV0Q+9L,%5T+\RDB7&;@?K5([]SX7.MOE'[$8?9# MFR]8(UI8LHY?]]J\B15L6C\_'7JW;? ,+BL#S4JRI'7\V.;AA$&_<<19C1Q="V=54[[15_;Y2&=&PYW'U$'!<.&DNX"1\_ M@UY)\J 2AY9RXP;GC?S=;:ZU*"7$($7F5EVY)-:7(8G'6KVU%F[#QY,$W_>?CF7S=*CZ_.A4XOH<,WIPI+>HQC5YT MUERI!'@NE_,DM54\W//N*P,##P?(I<.=9MIW)S,9$W7K!^6IYV$L=)P[??S\ M\/#[A_;8^;I,.7ZF$3H;BWC ZAOH#B;6OF %:F'DGWKY:[,!BV!B+.-_W2D3 M,-M[R\(U)4I242PEF*BQ*O.JSF=>G 5,95VNV[[2"JWO[@(*5X86EZ+G">3^E^8V?4T^;>[K_(^;6:9JG MU-.#/58=][+KCR">8%4_^K^^297"Q?VZFF%-YUHS>O0S5L9W-N'&4F7EVIR>*-?WPQ5YH]OU\OD;"16.Q>E M@TE>7I;\IG9Q[9IRQ71J%[2$N)$U5ZV*4E$2Y7*>WYKQI:7'YNIBK5@4"[7Y M?>U6X&EI:H\;7(ZP6=#$"Y7Z6#=!3<>K5@R_S?>IP=IY8\ZC,ZU%(-@&_<9I M^4*VG4IYF0:!FX(>_RX M#5/#X4E#? 1[2++23N?X\>-9Y>;Q2)>D@OL9I/NF^.ME[J\'F!U* G1V+=\1 M,QC][;Q=TWCO M M!;L%GJT2HCFXJW.]2YJFX]F*J9*69>@JBS=.,*Y/0_VD]>/6J/>?OP'JW&&[ M4<9&>WC?X8 ]5,\,V"U\RK>;N^]3==\G), D")AY@EFB-,JL'/?SF.BN^>PS M1HSTV'))K%7GB]%EO?4S676":40Q#A7?48\\.G#4?[3*RK?&R2?GL;1)CI7I MCGH]QN&2JYZ+.7UCD&-M.6]@.Y=EL5I?PO_[DC30U6XNDZRW0KD@%FM9*:*Y MRWYCW+!R(I?]&9ME/=5E[^A_G#/9.OVA99IYN#A3" #/7?:KXTIQO#=]H) = M*>8M=6L]U@VO?>Y6/WT[VZS93NW0BP5ZJVW=O_#ZPX2M^>J%E5KSO;2P>QQ- M9.WM7KK79)H,H.DX'AICF$0U&%@FG=(13+DLF,V;1^_2[3Y\\@9F[9DE7\-6ZWJ9.NQU#*1.Q+U# M=U$W1MG/^?4:^75RA,P9]TMCW*OA1IHJ@CXR)7RIV;W^6OO8KWUM?BIN2L!A*4 9X$!['7$7Z PDW_X*])C/Y MVWHQ*O,R8+%4D,5J-2^VV(*+3[,N391J-5&2EJ@ SP7AYD$S/Z6 (^@$6C9 M5[/M$6#@-\R0NM';-X^]W\?:V?#K5]DTGEUNC2G,Q]-$E7 @=$A/-[&@,[<# MUV@')D*J<4[6<"Z[*?"OLBB7ZV*M\'PY7+GIEQXZH&!;38N1JC)@0W:I6XO5 MQ"5DMJ4%RQW\_+OK;$KLI-.[ /\XUM!=^&]:AQBM D13,LECN!:B-J4 MFF@W)AX/4@Q8 3Z@F6R'FWBU M/@"TOR#WPI4U4$R1?2 *;6+KW7?"0+'!^GTK2.'KAQO^,GC=_SDX$,YT8FAO MA9;2(^_@.W\\8JK !(J%=P*586^%@G!PX%^4IM_Y(+ 7'[C6\*U001["/_"E M304%?PAQ]!Y48 _$#KY!7R'%O()JOP=1,'T WPG7HR' UK"5#O*J"Q#.;!,7 M%H);+$2_]9?_-?S307@,?_\%^XG96LU]P^RBCIW^\$KM0!]S.4 MH0/'X?_T:AX/A4N+$8)C+X^BYV_/7%\*#0N3H3VUZ-V\Z39N/K)4SD3,WL -([3WT\1X_Q$*$Y.Z+@+RYF$ M2T\_DTFS HZOPY]&$_T"]89KZ\Q7%-J!G@ /LF.Z\%6+XZAJ$7Q#"+_R]U^= M]TN<[?0CG&HIQ.+%; GRA+*D!2AKPC*+1\M. $> R=!9@Q<> -XHYHX9D4< M51DB>[;17!FW<=JPK-Z%,S1=WM$>"-FO KR&MQ\9F 6&7,]WPM3&JAR2O>#F ML?K1N[S_^%"U'^5))I'!V.%XGHV")UPNOKXE96BN<9/'[YYO"S]\FI?/O6E47<-U\,@P*L)85CW)62P MPK4R@LT+)^1.5_%K35,]%%Z[?0+<;@",;/0&7F%Z7;#E8?NTV^W^GH,"55 $ M!U 2Y"NRYB&>#/"V$7PXT W%QGY'FJ>ZP#G[BBOTE3N";QH)FM[M$C:8?C@$ M9&9'B6X'006H+, PYU"X[A.'/'V78F-N L9&"<"!H^Y->B?4223 NTB/CE)] M1Y'-&.$YZ,X 4/9$&<"]P0[/#$_7=-7I6[<.G&^U]$X4CFT%WH.^S*:I>1BI M!;Y^Y"&@]"B-[D%#HV=F]H1V'[B#T.@XEMW!O^_OG>M_X)W"B4Z$]M#&RA)1 M^*9W&):$*W]1U+YN@NS@#]$%C^F>@<9=3W$MFQV$QSH4W"FV;GEP@J!4TH[# M _8&&_85=)"B;P&0/79# Z\':Y=-T;4'O;/%&6FVJ M*^"-?S5U_)3*,P:<0^!*X2A0XP2\$2@?PO.E%S1^+1$TT03%W=^+(-%_'!1< M)-)W$Y[$]M@CW.;3M>_[@"&"8ABXZ?'W&!:ZH?4[7,1Q""P.F]8U<@C':X(B M28]$L^ EI@7;LD%P[N_!D=*1]O[%S3/%E=-D] ML8 &=8/U=S'?C\P/<)5*0Y8+CIQZ&UI MGDTS?(4A39U )-< -BM&F+[-$>IJXRTMVO?=LK).LV+LXC_M070OWI?B4MG MI*KHOY\2$:X(=$,W)=PKCM C)E(FNLP ..#P]*3'V$[!FPJQ-63<6Q"?*$54O%( MTG!TY5"X(@-%Q[0+_M0],O3)1RE/#H4*%>@7<.!]H4'U3$443CWL(B<*#93* MP-D4BG)M$%G!0SO&GL^>F3W+]8",)$9&]7/OZ*C[47%Z_KFW/.^MK-XU7[ MUZ=!M?-3T=;@16B!BJ'J0X.9,)'VC%?OT6I$^XOR3.K0 MFANO]>U]RB@5?UCK./>E)*&[:#A:!MB]8,C!VQRO Y:AKJ"Y?*V,5 L(43' MYCRV;-#KF'7^FGWVYG!_KP'VIHXAH ,.()J/IL-(GK'ECF)@O:G#_!D= E8C M,?0!@(W@8]5$]$H/ V=P O(\!COH]YEG5<_4NW9_#;BX'F[S\./K76<7 B4P*#: =J]CE!3'X0:P;MS6] "H>\K.;'$S5U0] 'D =.?I$(3 MFS(0+9F\J]P\FI\?BJ3TH4I(85<(ZJL#JM(IGS 8\!CLT-.[> M9SJQV[><"%C)R+9Q\]ATOC=O&X,_1Y:QE6IJ;!+F;)E7F9LD_D3FF=[QH')\ M6OY9*J^!H(-L;_I#!*XQRMYFVO:E']WS-?\.62(HNA9XJ)9V M<8(WZZY@Z\YM,E94NWF\EXH?[^K=NTIQ12)['E;TA:(F9H"$/>P9(YFA.4S_ M$IQ'K?3G;&BW/E6KJ3$=IE.'#?J:(96EIS:L _L;+D-3<0P7&=-P_,&Q 9M@ M/ 7Y".P:GO!GQU+JL#V6K"RT8\=O(&5\ ;(IRB(+YB A1#Z0 JL9N_<5I'>* M/](@"'O2/\AX$#TV!Z :-NH!0TZQ-[?@X_*AZ ( MV6"?ZX\ $)CVF+(G]!2=6^-@7SCH3J.*1X=J9P[F<*+R@^D)3%_H^D%U@ V;.*N#DY&(WBC-!G <_PC<89$Q9P?($NTJ;H\-T(8 M$%"DM'0DP[J$*4,&W"K%'W^;H/S2]DP#2R,&*K& 2_HC=03A"7C,:K# O+;O M*+;JYM!S65*$GPSB!$P)LQ!T)Q38'84NPF!SO9^91%[<[C[J8YU%/SZ.F*.EC04:*Q;6M: 2,%'_F/34GKXA* M=$JWL3I&(Z)C)/K^S>-C[WO_\NN% ([L*K? -'.)CZ5=#UN*+ ML6WXI4,1VC/Y6W3\+?#D^QY !7L/V3T:&..:$'!CZGOP>2_\11&87Q+E(MAG MUCVUG8#QHS0W:0P T\(<9\#%/8H5+@#HACV'R6.@(5U#]X4/R*%PY#OW:<8B M.R$=<]#"_:(3!7A;U/N"SE(/E\=XIF6RB@.^48"(=.$0N-2_!QD#! T =&.W MC;#&;6_R$."Y_;WP-A,;,U;/KGPK#+X?W:WH GP>8P;M M.U[#GA@VCH;]I7 M;AXK[KG]I=?[],5=@_,D &,'&$NP%U"3(BP$<1?P%6@#=6Q,&^T1:B$(%BCS MJ$PS19[2!]70#H5&]+$QTZ*KVXY[H -P["=,4:7F1E)4;SWT^N;G1OOJ.YFX M7RPD3_^2,T?^J=,TD_L5D[[BYG% 2E>C]G=U\#4]*W]64#PR&3< :@=(96QC M8<+V&-U0W&>V9M0T1;L3C%)59X%DX23R&[Z BUA-").](X:D:RL8=S\PP,+D MYB.5Q:$'CCG^J4GF@?WOD,#-3PR>M,2^Q^-\H?$;\U44_NC%, -IA6$2(%PJ M]9A\H_F45E Z@18ZO!,%L_:.3J'QJUWT >Z-A+8RT 35C!^3!OZ*-X]'5^JG M7Q7#&1T5=R7P-S;TS,]@()W$=8HX#)$0@ MVB;$AO]@;?24A?S-Z8Z?"()NT=>1"#=V9W]@ @MLK#?[>_=] JN!;%$F'.8T MRP1+KQB^6[0*"(3"0'?H]WG1$;H$B4WKUIAEZ*=3HG,]L&B9,6>3KL%L649% M6#'$)-'^'GR7.;>C,$1LWPX1T!WK&BQ,3GA'3BI0?5"Y6QO#W7'PI>.[G7T# M#72ITQQ7.K2D W\.M 7%/SYZ-#3ICO(1:DSR+GJH$W0(K:!\MNRL1(-G?V69X=,EB7Y!66.TV!B MQ^ ?>IS $S@Y]@+:7S>*SP1J :M0G'EV3/CX!./.ZL$N) M/ZFU4,&9%;U ZL ?R[)^0NF8EL_P(4HF$PB/OW.-FSV$%.X7MN(= C+3C'47 M(TA>^()H?FKT=YIAASE"*J$&,>T5XU!"&+*9M[[OK&=CT!!C%09QF19-\^1H MT(,&K!AS[.KN.!<-MS6#',8(*J FN/ [W#1<0)2%&P@);)I5W6+\_8W(K0ZT M8D*%/@#2)@8[$CP.6FKE)P-I_"O4 J)[0W PDXDH-&G0WSJ>R;UB:WP_-&4" MJ70:CF$%,P."6E8VX4%!#!/:M_[7B.9'-%4+'G:&-%R%Z"+Z=V63S@AX/[P# M+#$=L$ED,:J NNE<*":?)M#ED'KN*:4$!T.#L8;2L8![!G1&?;-PU'VB #=B M)<8\+])B\$=RNFB-K>9'3K&'A#$2F8>4!QV9T&+GWR'A==!@ET\3NAFBU73S MC', 'J5U/#@IOLAX^/*0.<]CBUOPR0BW]H8X0JO/C>!)"@M G*9?<:$32^D'!TT=+NCN[_ M5*W:9"$AHH$OA"*;9:%#>B;AT2-),ZRS8]6E@.IF%M8DW"CP&GG+SCTJP[;E/)W0I9Q67 *9)\]\?;6@ KEN,:/D2*IJ-KFHA"U='3VF/1NQTA[ M?^\);4M/:;NX'&T_K6?[^>?SKQ]WGQM_SFJ9D5VJY6BS3GH]--=(C>:>7D?M M^^EG[[-SY5Z7UDD-J=[0#+881PO[>^/$L 8UN>5K %S;9,+:'0V96B&8I&>Y M.C/.$'>PZP;B!*:A@?: ^98@CUO1+X<--C2:?:-.8W)<[> :[82/(- /@G(3 MIFJ![H7\]\VA<#;FQP[2U/WD+Z;7^I[I<978Q'8A@?+3T0V#M6&AV5O,\\:T MU EU%EZ(P6NN@H?F,V^#0ON0B'ZF'==KT>,?Z+I^/)O[#W!UH%0? -%/Q8LH MJYPRQW!E[,L\@W]_#]_BV[(&V(VTK4H 3;#)L2_/@C$.FOBWQ,!XN$0J4FF[ M4Y%*>2K2(JE(&Y.\B/^9RA^;7;\[%>Q_G(E$S&5T,B+M,Q[)O#VJ3=F18D3, M/$9N-+$Q5 0#.X<5"$6\E]UX3R1F50*K[.H\KP6=C>S-S-QC/!J-U(B%'G@> M.,D#YYVP$G$_(.^1A30HD$_RBID"%H4IZ*_$VWH%;J-@]\@D'5;Q@%\ R]*< M],L@E+8.EX%N 1\FS0NKJX!-XYO'70X1^QR)AIFFXYLSN1O*Y]^'^WNLG5@$ MOG'#7!0Z7NC5HL4']'S$0)'*^WM/E\:NA? " MT2^[9 D/&FQ$=VB9T%W /GS%;A!M-A"PVYD;G%R%IS#&+\.*FO\U:5]%"^"I M>ZW-7OJ!O1*HHS'VOE/VNG@GQI6I?M,NO@/7J@1*P(S[G3=A8@%XLAY1*)\9W=R3LRTL?[9/C57]IW9AM7G=LJ2 Q!98X.^;SQ2@($Z'471_$>MVPMR2W M%5G %AT9GM$%8X29B,%"+-PU-^PT2P9+-X^U+]?JA=7ZYT._GD&RQ+KRA*Z M42FVBA7$)V"@&1;EEARU8O/RZV-9$W._??/X_<.'RU.UK5^9M;7D33"0*)9% M@-II"3RV:2VRZ5#5G1!#J'''"%JJP,X49_$RJ)H4*>*ESKGS];3CN%[OD012 M9_:>YC'0F4!D+6KJA9(H25.;(L:+FM-%CO"I<"F5V[]O2\I#]WAJ/&CILTE/ MG)1KY9DGDUR<)&+3IR!TBYU:_?+#7<%82?E?)T?N85(OJ,E-FD5[C16DL9Q8 M'L.8J=^Z>?S1O.T-SY4ONI1>,Q=>J4#S?.EBVY2=-K-GBW6GH^TNC"\ M4(FZ?Y6'_3U"^Z0P/AEM ):H68I->HJM&=Q%BFE)S$7!%D2^/51&M&H'9!FO M+,:L:M[,FD;SN1>7EJ-.!-%]0 .'2=>CI=;X"E23N/N1 4\&F-]KASW7\0^= M_\_>FS4GKF0+H^^.\'_0K=/[.WO'QBX-C%5]*H+18)O!@(WM%T*@! 1" @U, MO_YFI@8$"! @8-?*AK%\:?_YIVJ:ZF\W^4O@U*V"U'CZWDYFKJQ^6 M\Q#>G.4[Q,E1S::L8;(R]H(RGVR+Z>W^\6[U:/J\8>!B\Q3<=GY!N, WZ:9* M=-(# 0V4&WH*J)TJ:44BKX0MJT,WBYHN(NS>F1 MPEF<'WQ-"=VR3:FI' MTBO\,0O5M9&!S$LXMV]^351TIZ:-='TV&7:GR4RM56Q?3*D)]E4\SUG]O(&O MFS(S%T_79W*R.,X*O5:EV#V&!Q=[\2]%J4D"&8<=NI#I*!QO:"=\'T6\48:1 MGHD'^3PD"EN6JY&?!W$%3*!FH"Z-6['8HU&\K!A&HBY]<2:RS=N*\T9QCR:L MC8@J+YL&IIZ6C=O4<<8X#5LP[?8&J@6+"QKQ06,1*ZJ,P].FH]345HS-(9O7 MW(+JMBXL6)^5%)K\8&]=/X&#.-X222]R'C\B-%"-2B E#0$?@A:SSB)N M$PB-QQQNF05%-RH1W6ZB[/&V^JSQE/CH<,JH6O*_#Z7;*ZBHD"G=X9/DFT RZKH**U:X]!2U>8:RH8#-T_O-=]_>\#9V9,OC M-VM;5DIZ$+M"&>?WA'NE1<$(I)]P 32F6MF29!TH6_T@.$-LQ9<4VDIVSGZX M["T!;]F9MJ3IO=YFUR7M_W:$\H&E]8YN^"BKL"VZGM[H_,- M55N;^;G0*VS10Y*<<4'%>X3M MS=_Q2O(?HJWQ'/:KX3I%'A>@XF$7/,J![NL]-E&QK5D':NO?L5CYZ,XR0V.% M'AJOA[XHO;^IT6$E2:'4?_9&NCL! MM. #K*9*OPEC&#MR/;$#!>HUYJ??Q)CGU,XO(D;^93TIZQ./T*,_M@U_UY4Q MA_GO]@GVZZMX[ /?Y\\NT,K"%";4^NPW85RGI0E2=IR$KYIO!KX)X>C__6#F M%QV,I6SF95X2WY5<@FZH\S9KVV;7;]O?JN:-YE'2U/(Y#SU'R&;OQ<7"H-L7 MJ'*09^/EA^0,Y%/UF= : M35_[%24E.2,21%6X1S2.6^3N###+[<;?-!D,T$PT0(="_S@@FX'$H?!? M/_Y8NUB&MO&CZ%_;+G#-'2R^AMKZFD7X(G+\\><_:S9%T3N^#M/H]J0:Y_M9 M-.WC2K%UN'.#"5#18" 6< ":)_HDA'^3*)G+PZ ,#,1"3@GA6^6M=T#W'!N\NNVCW^:!["S,D($H[>0F=W&;^["UE(VM MK39R?Y E14GJ.6!UO@I9F6JQ,L35"LE9I*749TDI1X;*J70Q&_5'R5D]VG\; MYM\X7AD([/07CHW_^(/W/&]0/C](A[/.=+F>_1' 6*BH4", MWLZ&#@7:QAMQ"_%C0/101A @(2N(,$[U4>L/XY;J$W:J-QO59R0Y)6D-M:4) MJ^?%>HPRI_B<]D0E![6H^M#P48_Y\0>&(+=' M5)<2_VU-X:P.=+PXDOBFGET[_^48M6B:I_OB:B^<0S)@(;_&_?Y0)6 '"!RJ MN.+T#B16*^AY&PA4ZW./+#BK@-VABY55%W![@]YJ5&B*\)A$BU>@=,")MV=> M)+BLR.(N^M:@ P@Q4R4CK*N\O=&U,M0M *YE%628"=UFQC-4$20\MEL *"^( M&&KPEO0FUU9V,K]2K*EO95X1"P$O.[X$C_.E7"4#4:'ZK"RU'ALT4QZW#VPP MX?]%G4[5EC68;7MJ3\9I1)YC!D^U44WQT5%S4CBP)XHK.#'WQ'Q4'G$"G3W\ M3,JQ3FI(Q^JA&3BD8P;.YF7J,SF6^BAR684+=3>FV\SG_EV3;/Q/LB%M239D M.?$T^\S+="=T=DDV:5N2C<(UZ4*HDZH.&[XFV3!.W*W,CO->HCI)Y[F'6C MT*:DJ[W'1BA<3;9:?N?7..F;<&-6!\UKULTOQPOSP^@+D4R "6XW^?Q,N+%> M.>9%3AJCYW>]R/F3^][=NC=X?%V'AK-"T0!)[W-=FR&TW5D5$V-"@5#,__RZ,]=SUM_ H3T; MR !-1@)!QK6J>2@#GN@O57)P MUAZ[D+4G-: H $H3-4:X:CT'LYH51/"#[5 DN:8[\%7S^1+-Q]VM'\SJ#K_U M0YE?PHGY%8"94F3RNUFKK/6ZK]-.P\\LY'T2B@[0@DZ"WWU]&I']VOW1J:(N M=:KOP=[VO7%O.-NZ2SY<;:-L[--.4>;\B>B]5DF5&ZKA=;T05O.GT"H M=5"/>-\[&YE=Q?%TCR0[P$VD9H KR0 U_39;C\1Q5_+MJ0[VH/BAKZ[/HMG/ M$?G\$@>UY;:U!P,V>*\/-,&I-FEK+&?:'!T*,?]U/H34FC"/FIHXITB<_E4_ M2V*["N2^=9:BC ?3LOTU%[MK1D1LH87-+HO59YTL*5!QLB@$-[0FK[_'J6D+9T"O'E4RZT"T&YZF\Z MA:,;(2/)&PA*#YPDX^ET<::0P_I,2LN?;VJ#TX8^Q4[6Y5C,FV9O&ND\)\QK M H;+*_:I"#A"!^C(=H7ZFI3AUQ4>7'7,Q*!-%-JGDU9 MHW)QCH+C^T$]Q(0#&203B%+A0(@^NCMA@572\WY4'PFJ(#I/L\R4,Y5&C.H1(\GC7G3H=3;#PHR$P?0K-^ MMZNTOT2'PT'LAK%[5#*')LA=U;B]&)=;)/"'3Y$0^D$ MZO2Q.+CY]@9*"V.@7TM"69^X&PB+)TFNCW"?]*0F3 DKWG=;J/G0.&L8]EQH=!@@91) MAMS'Y/>)92<6>O#O):6,2!'6C=51NS[KO"A/S.M,FM:X+XUMKZ%5?;XI\D1( M+BX3TK%/;A9-3A&M9V/\""@Q*SP<'T MG=V,)+>NR+-C@U]?TN,;1EVL&_(BF@H?]]J_UIMXN.M0=V.9 M\]+M$]5+>#2\.5W^%\&$?Q.H(A1^I-&@]=71\CN.D5^UR1UG(OX:Y;HR @+_@?[W)!HUZ?=_R!47D4_Q]\C]7C^ MEP5_$_K\B\!52G1(,%9AW-T:$?Z&>YK%TL+.9 M=N=L7EZI/ALFJZ^YS/2M00M^^)O'TO?P.1MB\FL\SI3-X_R<&TQ>8FHM-PZ> MG<>9MGF9UN4YD5C12@)IL6636TQ>=1<:\%=]C"K0LZ> M&=7J"N7W\H<56 MT @5N*D[>@6?&=J'[/V_S%<<=ZBCCS#?@W&LAWET>QKJ6IBN+?)>X1D9386K ME<$(B!I /I0R:$IM$77,0";*+AQDFLU%F"3S4>GM$Z7:T3WKCID84W-DT&=Y M9&5\+3-9\:'YQ$>\N5,_O*6Q ,,P@0AYF:P>:,@6-5*6F,&\-,1LME@^UJ)E9+4%^@IAAG M0\XW-+L,UQN.T+$(I_EHEZ^Z^';71U!IMHO7\U)ICGL7GJHZD>T&['95Y^+R MK*NV$7[Z3#Y<7RB;$@4[PM$$0!G,-9S;&UF_=>1/906!D 9 -"@X.R#0H14(2)3&;@!%'V5HA0QP:V)S,*4]Y;VQ M9!ST70K.1246:QM1<8<;@&"K:GGQ2"[ MGY-^.^HDE;GMNVKJ&U#U$1%?6QVF..,$0U= ]%%8]2 M!G"%%:)7?7#P?+3J42>K^MY&U&'6:4$2FQY-50UNGJJZ;J7Z;/@,"OQ+@L[* MD8V1[^7+DO!E\==QJT>,<$=M^LG3ARA3;]%J#'3.+L)MKZE*Y8OE9J%?B8KN M:\/VB7!'ECFA VU@_\RG^%HH=T;AEY-,[!RGD*MS?+W/%G.% MF5!" QRSBCC,2ZW\Y&M:>EYG&OG1G,0%+GC#O12XH?_[<;>:[AV+Q0)4^-K< M\TN;0^V+!CLSQ+5H$";)0##XM7T](XY3CQ;5,#%*3U/)AX[ ^52O[IXCKFWG MM$51"Q B4*^]G Z>B^2K?D=A_2[*7/LPG<1X)%_UPBC4"DD73=^O_9,VK[#- M%R2#@0S%F@AQ1)4@MJ@=5KV]X15;B$.5B X[@H^C6 FG-55"X%O@KCEM"F Q M0**.@3 "=WVX^XYR3U0[\#WZ:ZUE%*())0/<% &5W[Y>7V/&'>&O93#4>%E? M% 49T2]O;Y!BBT0OWP1Z@ 5O0T%HS07PL1"A0+SQ*O[X95%;WC;=& %PP"*YJPFLC X/1(57>7AW\/@J M:'9$)))O;^Q&@ME,2T3Q0!7(?8+3\.]Y"&!-P7^'= 17E'FXU6:'1:0(9!Q2 M:TSQLXC\>5%#@(57IM\.XASPKD1XM#G:B.AL,CO@.7T[D$[;^I98;H1P5 ^O MF0_8]XG0":-#2H\S&_%U)' #"\!I@#8""?Q.@BI8NP,A->+!&"*$#L06V^0%B## MC(::4>L6!"*"M,V'W-'?8#R&OT-7-X;DUY$0WL /K-ZC&""T@G>/?]R7%)4 MK1;?Y-'U:2I<<8;5:[P-=L3R O9/(^/&*1( 1UMTQ*B F ;>GS/?#&0P#:^ \W!&+0L.2;&T&[1>R M&,0P,7\92YH D1X02+F4%(##O>,.+^A'VPW7YF^#L$:P0KM4('Q0ISN\'(0@ M9,4<>DN+!WJX6E^9%>Z)_U !BJ20NVOQ9O 1;?M;2C[ =(0H;,0KB$;=;16^ MTRD_8-4TJ,EP[REI+#J'ZI_'JOCV4@B76,8*U9><]R*8>U#!?%NNM1-K'WZ' MMZE :.UP6ASS)!SCV^FMP%L--;.O6J_R:])?% M@EEW$>(8Q"1-B7QFE7%PN#PX\9 )A<>*#$.<'T ]:%H2(,]!87JH]@R0/-L> M)X[:,&>7U]1GK/H'2W)N7P>*OB0^O!?LA8>&8 MFWNUW69<"XW54+N2C(*-T>"%2P#FBZY!X",$@4F;Y.-8OE%67OIRFSJ[('#: M)H2>N&J0:S6XSTS7UR"P7;MXAJBK=\DLE>+IA]FHUZ[/Y'J&_ [^ M_OB#=G -YB(H^.+8BX4"-/VU8=N3Z5:Y%LB'JFB[ WF?@(&=;A,:+R#&@Q(1 M@GEDFV.X/V*"[X%$W5SV#M2C<*;?NZZ!H:JV/@IDOQ MIPXO% T&R",,Y3IN(?99H<7@3RUZZ#.U-NI M==+PCN \5!13 M 3J(YG]M9XF'QNPSF@R7AI8@/%@&[A)^6B-^7UX?\WRNQR8IQE?Q6T2^7T"T MS(U]0^)=>RE^T"X="#'A0#BZ?=;<>9+N;L \O+"=C 68J&^%[=M=0#@[2_S&-572=6A5UIJ][Z$];[X67^@W&(A2ETJ\>X#S4 IV M!\Y#Y2ZRXNW&P K!ML5)KO+,?62EJ(_B=EWB\&&6[TFDO9W("(7EB_9E7&PD M' C2E]_W^T@S$UQ=V8%L)A@*[7]E^S"?A!O=P=#\\:R#.2_2^5)A-I%:T([G M^OENAQ]VJ_2Q%(FU2;MXNRA7P2& M7NR[J5I'/Y9#*$ %66@F#RYSEE^:QW^ MV0T,=H*&0_YH'BD;\<>;3:VO"2CK*86R+IL\SJZ"GP6 /L#SQOLHR4G/NEH+ M"WTPE(TS/,8>A187K;:2^XQL/E1CP:5.\Z-!8,_/=M5>]F4N7B&++T['4( ) M1P(T=5@%S%7Q.\O&E5[JK6I MZ1%*GO897^^<]7,M<_)%$_-IZGP,JF#A0"BVO6'=N?,__P<^[7QWA\=HR4@@ M&-NS@NF[EBO9Q1+N0R@J:[+/[2JO_:DU+>*"HOKR\#P+=9M6WKG]J6WHL_!; MWS/*:8H.1*BU7;2<,\KC&P"RFDN>&H4H2HQVGFMKVY:Y/;N'6>0!*@C_2ZW- M(]=+P79,)#]+0J@NU30UI7Z?5[&[2J^-ZP&BR0[0:"^=3C@< U/T(IK!0)8F MN'Q/F*YBBJU_4_@BUPG M\*V?P'>^_.R(/?N>>1'=E P@4\E8%8WKRFG2CMWXMKP#.<.X5'4"4KELXPBU M-)%[HM*!AOD=&I-')"19QH,*E6.7TOA7LXJN?+%8%>H<@!^AHDA"D*#\P@WP M<=/I%8&67+3CFP!P"L*C!"OV4J"AKE&!VE2I%IL,Y"IP83VLO-1O52@8QJ6% MZTOJX(H88)4^:KV=T!147JT0<:[/B[RBRKH2_7Z)U? MH6+.2Z_9S>:6 W.<&A/G+=8$E3OX%W6ZI"^6VXGI,-'YG.:CE@@U'D7%8_JS M2+'%#V\-Y.ZP$5\\U%B?W*A30IQ'%@EJ?8"1I(DWJQ,O2S0@+PD08U[MH,8) M -*,"@EEJE^":F>'_PMQ>F V56 @JPR3!#2%8B3!07WU.9 MR3]_!;Q$,,9[$#54#'[^]IR,[V&9L*@MA)5A>=D8JA''[*NHJ8H*@05Q&Q$7 M)]GIJRG,.B]\3>X&&4@\&\3D 4L9XO.9HQ+,I)^2G\(6*=L>@)4?0=I %'W6)(Y!8@;2?L(6W32$';9HB@YX(YK3)(T@G+'JA5):<#,DHZ<'Y/AZ*QO4FX6#KYC" M!11>N2?L]&0\:NQ%13R8E656-#:+E2?@X!>,+N8&X+DB)5W&8 TG.>_D9V,D MY--;L1+C\A&5LZC[%2I'@$5"1-^+BW#CNM5\:?\;#J/L[/V]IBZ@8_"^+%<9 MAKK]!R$6]AH(!]H-(9H),$&GB-$Z']?<8XKT!058LV=0(RV[/LP:)S$U%'?. M,;(^:W>4A]=R8M)BC]%WXBC].YZA_B3D616J-ZCL+XD;8+6!V-S@:; 3HJOG MZ[,A\_@@=LI,_^D87H;H/8'W11CF+O8P$.?O8M!U+X3.HD0(^(2#^0EQ_SJX M".+$,I2,6%-'_IZV;D!#$L ]F) RJVNV#XYM*1^HI$)"1X.\ D81ZB5[8ES-: M![+(0X4VBF$FM.[B' 8.5&PJ'=0A,MY0)+F!__[,#^$KB10/B,H .7O@=V]\ M0S:ZQ%DK&T6;G/DKO*".N\CGH[&JA(Z>GVMTG 1!+DI06Y)10@'JEX[D\9A' M8D\7;QAP"D([HB%+/>1PDL:BT>E0 3:@W-_>8/1<-9X7P-MG.<,))@.K,Z5^ MR?I4,?.2?EE]%EDA %%0UA".&&8X"V0)=\0C?D+QWT)Q\7LB3N" !]H@QA=] MVSJ70IZW;2LB>Q2[UE#C.D1F9^C_Q^'%;8QLD8\=/,&'<<]"-ZU:NE< M[SW#-#L;>SCI>-9 O*-KHVM"A6^_]!Y.9L.@KVGA9+0^6DHG"9(BH%*O[_U. M[.R:.87J3L&0$M'_E@^GB^MI,SC;4JFFK-^XUCU#:\\\10O5J.K?N)%*!"FJ4 DNCW[=J^.64\RD.87A1)L#$ M3KV7SQPC0MYQLW48T>K(XN,D'5*X^8S&(S$OSZ\W$J$"E(O:8Q^9E0O]S3'O MW9%US7T(9UBVLA:I2>_8W!Q )CK/9L-"I4R)6=;]J,X3X7;+A]F_50\5C4): MN/SJF;4H%O..;ZZB6"[Q^E%)*:7NH+F7Q>@C1_4*A:A #*)0F#YB26+$Z4F>M M"EV5!\'YM!L@(U\I:R1=XI1G*VYC'T3$BQP_XCF41&EM>&.-U=9->LQ/[&72*>5HST!,$$=!&'J"!!V M;,IC0!@%"AV2/MT"F78&\BBKE9ZEC^?X8\,;(-,' 9D^!I#7)G3_%;B]0:4- MJ')B!(3I/_J0.]4X/0H>X\)!PN(X5ES?.O]&KK/#?5'.=2UQ)O\!D@K!C >+.*]=GS6XM])2/MJ4IO3&9P Y*HKIY#!1]ZBD$:TP*>T8!Z<96 M.32JGG',$U 2%,4.AYVQYG[HT\Y;=YLXL/+B0\\<=\PDT#XJ#U+N-17IM?<_ ML_O4@KGK).K$OA9)1L^SU>"ABP.@YY,I\0:JE6RJ=3Y1GSU7XH_2[#$?;_G3 MUFGC076#S"R'4]F);4SGWPW]!/_\\KMUXO8?'K.1XSZ[<48/>Z:_ >,,X%!J MW J:U/ML,E=-)V:]T ?J[?!6;#V7)J%IQ$/GFSU]92UEZDPUANC2V.N&5)8= M&8?KC(.#&)*+"5D'O=] D[\W.V>VW+?WCC:D4O_?C[O5$A5J3;7HVHP"#Z#_ MSQY(,X:&@#1&[SH83^:O\@PUUKW2E:=N#V3PSH''1$)>8N(?/,41-<)C*':'] GU@L'J;@IC M052E>L=/[CH\QP'X&XA/-#]IR (9"H70+J,T1?\V;'!]SZX]_S["R0TA'>W6 MW5.O?VOM>K=AW^[V4%Z67N5E:TR .E^M]]4Y'^NS^&/X\:D^8WM:-Y7/E*?Q MGH>:G@N=?VTTM8H]=4TGD\ IO.JI"GAT.O1>X5N# R>G[_FAY!VJV7G)N/S4 MXW:XX^.K<7[QN^!"L\\6@)#@]O5Y5*+OJE MIQ.*3Q,_7#! \PQ7KX>/7@\3 MR(;ELTY ]MD4%HG@=5*??21$)M[(RD^?73]%HGN'QU7$66UYW=SFT40=O:X/ MUE72'2SI]K]J#QL2'J;)'"KP: <^MN"M<,7-WM]>R:<)W8^5?9J2>?59G*'/ M(ARY^BPNU6<1CIZLSR+E%*_4>\JAGD!Z@PQ]>.BL.*@JE%0;?([#Q_1,[#IU M1G=7<([*O ?^BBN#VTE#W(Q4IZ89^L57]U 7ORE+]1B9CJY[?IG'>:.K>>Y> MKDRHATI2;;*)?=S+7CA:]N/GWX.-[UPB+=G^.0-VSZJ M=SP:/@F&O:&,24\J!.]#M19/U 'HX:)!>=;WN;_"G$T MCT4244-LUAQ#,(_3H,(*8U"&BM/*616UJ 9P'ZRJJ9(\U8<3J)+M9[;G5V8= M@%9+K[#1GUO3I]#/U/^TN0.+@Y;A3LH+0#@X]S_HF/N_^]+U6;3N47;A:S>UM(]7%RKP:]J*QAV+!>@XRVJU&-EY?W\V@HF'8L!1B%I MDAZ,8^*TM5>3"+>Y_PDG:VP1U]=H0G$S$;1B(O\"U=5GD]=PIE5M?@H?47^L M-GLFN$,Y .2)FKH2&3"IXB@>\37X-, M@-XM*?@T&Q ZW.SIW9QW=DZ$B@2"N]V;9ZZF1>@XAT)1ZY@FE6]UI\6JT [Z MV#K&"&#:E8D[7'@+%0SC@O"71C[/;N+6Y\Z#>[QGQR!4E-HE"/6U7??6)R7M M1;;K$--?PG2>FWAX-I5]@I:SENZ4;>>HP"^DX''OTXCT0#\]M7S2,58/"S=E M:/?8E ,0S")ND6^,$VCB.NOUWK=EY7FWIMYN0]XK#VY,D/-JR7,_F#/RQK:+ MD7EXIPP4P,K-3GV6_7CJQHI,J!#9IR9VWZZU."G&W 06'?HH+>5"1(=;Q_^V M^SE>%)>*NO+I'N#D]TMP^0GK0V36.DA':%>07@M)9_(/;R?_%$!C2Y#(>M'@ MBUL\X$KZ*!,DL)"PPV.PZ[-84QIQ;X\?9&*?K. ]Y)5SAK D0]02[Z!ZB0=% M\Z+*BFT>N> ,/90S#W0A7,.MPADC+T'AW(]N72+QD8@Y%@M$F'U:,6^D91>B MO"")!O9#>C!LYOKLZ>FU_QEK?[R][E/K<9 P+Y5**R.W+X0L]T-4IQLZ7F2? M# =BYRG.73/!X"Y,+Q^/SUF1H5N >% MZ@9SC(>BV#&,AU?T+\3I0Z3RD/37+Q7@&-1'D^(0N:/[YEEYD(UW_-D&>[SG M>%?L@_G A#UK]+W1H BYRV:>3?*/S*P;I[I9GQKD'2EC^0R8WS'F$%QR^O%Y M\#?_!Q.<7P;P/KI8<*_(7'TF"$5*5IYJ+R_[6&/NP^/6GNPA)O(5T$Z<1N\A'@K=^S$/[R__O2$^POVP+NTVJ*_,,+AG]K#( M_G*?WK^2 NVZD?4O@EQR,2T5)"#E0R9^PF4,K])Y)W97^'GS_Z;5='QUIKV] MJ/?VAE44@.;;BQP!->4&5)>13QVAD,(KJOFTGK -T6S]:'GJA$?+KR:%FYTG M(!W%,0109LO\_ ?G@V<<\\%W6K4^&[*-CUXT^! 9QC:F@B<7;MOJP(020^+S MZ[4M=$W_]BK].VE+^IY5U$HF$NZ,&N#LDKX96ZKWH/KR4GL>MU-JU]=4[XQ# M)QB+,AYD25GL;E:===N#D3@I 5PSWVS*&M21XD@RLF(39"0Y)6D-M:4)\&\0]U2ESN=0VZ)J M_&$62HSK,ZFAD07Q<1@,>9F!M:GL8#ED%+P/X1GBYJ9QP1=G;!M5A@%^A*30 M2NSH^Q4>>(\.BYIY7"FV/*@XV#5O_7+K#8YT88>&L8+'J#1(;>)K.7$$1;0D M3Y?Y4[E,QEZ:M<]7BON:B+;!GI#FRIN;)%@KPG@A+I8=T=BZ+C_X!TW[E#UR M"G'K'4%Y(&7'@GMF>^[7-'$W-O<,U6GSZV6RKSZF&Y'*XWC0VJ>9XKZY9(ZJ MB-2 !@7 ]4?&37U/FM_Y3OW@#4&74>D+80[>P/S0>$LH$J!\XB([&CO(K03_ M7R]R$CDCW*187P,.VNJ!V5#BN#!*L SOZ#I*2HRXP%?- *2TWX./!RN)RK?-DU+*:B M2LT>(0UP_@\!512DK2!W"KI/?N=*H)/(FCU:R8!?0GD]0OG#UJ*N]'J/,FQ= M3UTXV3*"$[GV ]DJS;BKBO(L/7>C)QHG;=3Y*N27JL4O,>LLS-),OSYKT$+R ML_)854M':C>PVX@+/<5C]S*#2U'2\/WYX_()?B=/\GHX'DCN43KFF_@:>VVVA*:?VB16[S[=?R,&RI:A>$['.]& [^0-LV%>2I0'$KVE) M@+8*%+CIH<8/4%9 G2_DZAQ?[RMS0?/4HYGA$_C,UXYN_&]7U],3J)(K&*$Y M,) AN>\1G?A>2KK+$9HN,<8/$1>F@X%P-'3))6['*N'UXC8/C9*$8@%FW]O< ML637:02TI4H4@#I7J WF]L&]%W.EBI(K[--DTE,'!!U!: 8WZ:Q(GQU#.T:M M[H[*) 2N+XFC,3) 44?C5U_F,/"_+M?UC1TZ/"URP(VYU,EVJ<0[BZHX_UVA,!U!Y5&@,^@-)9N6IO<<3T0#V!HGPT7NB.J_WTYLG<&B0"S%B!4W?)FOF MW-W>J)(Q?D#%JW=81TX.@3 E1$F%JQ$R/B_@[HFXTRN)#JL8/P4BGC4#R8TC MV#;+BXJZ#CRW-PJ/'H;P9]L 277XO,"#$=PYKR+@]2490/NO!X0IVJ:(U\#[ M70=Q5@9X?2@:V16XX )'R <4HJ6IJ(S. /SMC0EYD2,&$H(*;_:A@(J'B*]+ M1?7>;51(QXMX-45!WZ.-B,!PO;.VIQW I.^&[:,\TL2HSS8W"KW7(8_3H M2&,(&SD _ZP)G'XM$ %P[TQC'ZP,,4;N$WR+ !!5(<,!N#YP\;P6HLG6*Q8 M=7LSY@5!/Q;$%0-IX>\'$+,F^*WP0O[#W,>(/OPA.B/:P>++X3?&JE.X+0PU MS(31&PUT6GN+)@8A@*#MYR$F,E2 0!(0_?L_>HFOJ4[%R(@+#V6NWIS7[>6? MGF-]^6TZR0GGX#'#I8CAI?^L2GO5JU9=BF8;\+60-27.]PWT"%@Y;\@-5 MF?"ZAM(856]OP&3 RSJ#A)9(NT,LP];>!=5QWVGT!KTI+!KEPTV>#<":4XK" M.HA?/VK#4O:CD:K0%HA__7I/O?_ZA8]XAW[JNO%D.!C]\0=A&'K*ZA&P1']+ MFA(D(:L*G$K59ZW'5"H69;5*NKMWK;5;[0;N9M/XP]AYCS^,7<WYFGCK9%I>/ M'$9MR\"@J'O"7)> "R,QTX=,&&_@%[$ I;.T8A*L J\4F$<RDQH%N!APT7FV0@[>]"YP51>NC M#SJPD;'@/!#4?UCZ.G)TB4-AXHJ+G('!!W>7(9VGC>ZR:GTF92//F3+U4 OS M&[O+I-?R!'W;UUXR'O62B3N.$F6"93J6 [EIBS^[KC)1QU&BY6A\)M#Y%&4+ M7_@]2K1F\*BXSJ(@V3> 7&QA.E&*9PM0!E!4NE2ISX1,XC$KA\.1 MCD]%\?;^'8O1E? ]1L?X-KYZBLTZ-G:-\*=CQTZ7[$=[0LLNUI=$]1/!&!F@ MJ>U-\DZT0\?V6SS^+1W6S-#ICJ)4@**C?O?D6)KU(F,W-ROHEH2^F[BJRGQ# MPX*U*LU324OL%/TXCO+T=?>XLLBD@-(-BR\3*=?O?'5(V&!:R05FA7+2L;8 M5P7R@@:-_>KG&"L^D0SUPU'I**R0"H0CP8N/-A\I/=V?._>8L48#X?!VP>=9 M9KH+=<^PA%9$#>J(WU=M[/0]I/+ECS0U'1]IC.LNG'6K.KAJ9E^YJ\<$)/A4$)8=QB4@L*1B!, M\VUNDD"[O !:RHF0%M"@>)J$"O1"0H_1/@/21BR$\DWFX:C60L 1QPVQOP&E M!PPT&7U24:"*196?=T-SF# !3%CJSPU,6"*'Q#WF57R3'^AA,2.M;M,CMS>\ M0HPD08-F&$0\RMI\=GDFP_W\%FU'T;7Z)BNBY+X^RP$40;66 M1W2'33W,4\R\F@$[E25!N+VQQF6C1"D]0Q(R&O1ZP$+@HGD>(L?*!(2%K*(T MPH6S+;X& ET\G>EQ=3 M< XW:]!?6L*!;ET%7,N*%)SYM!(F*G?[+TRG55*RS#9M=\]UC^0E"D;69I(1 M?_\G=D^3Z&K_0U'W0?+V!B,)CDQB-/@'@WX9Z'%O@+X:R0J^2PK)BZ5:L75$ MH'ML:E !QM$Q9X(\>A]F3)!#KKL"\:4D"?@_ WU2D3 -$&. ,7ZE.P4I6I]-2N1CENF&*/$8"N]1 MS(:Y8H]RS^8JC*%IHWX3RHH#4%FG)"V4H!WVYOIL7$L#*B0HC]PQ=*+@O:$* M%?5H B:;R]"$(*E'%W4@EI,&2+BQJQ$48MSAFQW($8'@0QP>0K*H8*VC@Q8/;=9 MC_V@C>50!%^$PK4,1D#4T$XY*-!?C1] /0H=:55\VJ>;.JOP-A]W8KKJ 4?) MQ(L1Q[BF=B09%;0LI6MG 9N;3:;M?KMG)74N!K46.-,".+9* Z_W[D%>]QKI M$"8W)7=;WN+RU Y\$I\:BD2S2T2$O+1*HMMFGP MB\X\N_#5JHO"3EID@$L"0I?Y-: ?]"'U"_B";F_,;$+"S"8TBY:]L^K> M>1BSW&N[H'1HW_C&?OOU5>5_K:1*EKO[GG8*9N@LAM,M+LNRVECQ]04WNFH7 M<$]M_H.NYCKYV!G M$W-XO*_;&YE7>GLY&" *]A38&P+^TW@89&G RI#EM P MF-3RAE[O*W =J!U!77M*3%%%!]'49#Q9F !XWJLA::!D0J+&>)TN&##D@'EN M[O#Z2B-8FH=R'HM86J%XLR<7W;KLEN#"+C49# M )AP-'>*-G5[8WFM4+$K+QIEMC;,F1DNQK3%U7'9,JJI)08LS^D%#D!$ MI8$BKEE<4&^POB(!O= 9GE3W$\)[XB1<("S-,16!#.#4)[T$]MY/3_IQF>S)KV/W/"IFG.<[] M4-)328-/.Z;!SQ+)VI-6F7V,PKZFP7NB[UIT$Y]SUC*4CADH''.&;$0#R>NS MXU3>,N?_PI.XOL:X;\80+"[?W[83&L'S]/WS/;$V0.NJ._ MSB2I_DLN]C##8?VU4O>Q Y/Q_W+;;PT#I;$=;@TW<#.MD"K41*DZIW[49]V> M*@5'I7@UY&=>/FHI:3<$>,.KY$D78TNFS2?O[,^7=M5V;>B$^C3\@K8C.IFC MXNO+-?[X$[PG5^)+1VE;[ #X?0"[A4J_"JS,?6P;6/?) J?]TG;,[;]9O@-= MWWGKO1:BF:XB1/ACM31W\'9\BW[E1[C/X^HOS/;RB -4EJ]IAOY%E^27+L+0 M>S1;WZA^)/SF4"G#=:7SIZ<4]_K1Z+*51W_[M%M,R?2_&0+)W28H>)%',5E M(,%E-$2/YY_)9LV8'V$62*?-0'$)I7N=R2ERJ/9"1,WXL-Q;M21\C*D$EV,J M%M;:JE\A%<_S[*C8&K]LZ(0B*U:F4#3C8<#9!A(]*]/('Z5B>GP/Y!^JG\S' M8ZTJV-K]VMF?9"\I7CKWK@?W5PM>=V2GM%.D]1Z<=DK3P35II\=JFQ0Z),+S M'P?<2_N#>TN9#B;/PRQO"2.#S]HS*7?I/G(%&!AI,4TKW=)DFGJ.K"VG:!NZ M?B4Z;H*"YTAJSW2CJ/O(3C'(KT9#+W-N;!=@B2T]+7(1\9)/\4Y,S&KO K 0 M;R[GK(S>(YMW #A2KCM%WC.'3N3] M%L->_0Z.NQ1#ST!1?ED(;:+ZJ8JCF-O:=;NCSB0#SID'B'0HGGZB>UW K[%, M+:CX*'5V/LPQ:N'7%3N>G%")>RE43! ?(%>4MX]6O">."LV];,M5A#N^9-D) M"D<2+N%[9OO QZML\=6NV>@7=BME4+GOCC+F%-MPSAF0)XEV%N69X[TLVG/F M,I\OW&,TD93S?'2MY,*0]J5&Y"C6E ,LCB'X:%>"[[3ZB7Z)I%RYG=UE92;8 MT[+BYW,CT]E/5BZB^%=(RIV@<"Q#+'C/[-EA?&_9MC/.?H%8=3SQ.=AQZX*. M9KW;R1EK/H5X%L*+)A/I94+]=@WDTTUZA_#BR8D[5R%%3T0<':+/Q6/H29NC MO4*%)G9-^\^#* #C5-ZK2.$Y10>]$TG4?6B?!'+/,!!=M#=SO>^VKHCHP%H@<;[-=XW2XRUTM>N29>Y]"-@'TA6P^?PUJ% MN=AXG>>]78.13&NYYU&X5J\8%ZO6- M2DZCSWMZ(B\@:N>+@ F[<45>Y=S.>^$7#41<6%7G$[E;+TDH!O?[NL9SSC*>LP:X:X,\*S=]SES7RQ;5:R-# M!K/MOW:9R2,YZJ9".T2&SH[ANHL<><%BZ7#D#'GL[M-6G2R6E69Y1\Z>6-4E M9H-I>J#QQ4+:D^P)SX?)GD)VA5].L_">1'#B2.[E2(BMT3$#C5\?IA\)L?<: M3KGGP2<>/=L-T5:C9Q$J$'3AEO5KXO%93EBI 33$L*GI\V;YI:)*-*A [4C* M?$0-ZM)_>X/&U++B,I<4I#'NE&\,P3'FW\PYJ"8O37IDK5D]#5; XS:5#@#Z MR !C7A3;;LN@C;KW+^]-:MW>V(?66T-TK)?:)S6V>-0/";:8&&RY*H@0-_BF0#"U+:L/H/(W;%UJ"["U)AT)][!/]S!WX*I/KO! M&%9)_$TQ6(E WZ[,BHQ%\70C_4^W-V:6T_T_]@D%_ZM88S*-X:-XAXXS;L++ M#&TAQ\/@0"-.SF9C\';D>2 MC5A>0(PV(\DX^K>$>8G*!Q_B.MK@U5: 9+ 4\]%CC5!;WJIO5D1T74<+_4;G M?,CWE1OP.$"VP#:F,Z M2X&*V:JG:%ES^;5NWV'/]69?V^DYXK$A'*SYFAC];1%NC.>)Z8(A7D:2YY . M?"'G#GP^;; ^4YA\)A?L-D22V77FT7(GOP4\P?,M\;KG.!EI3X_W[L.&7#C$ M$2C3/[DCQ@"Y[%EK=@]F7$S!.I#XM= M)9V;8UKOQPY3G3+X@5SC5[TDT@=!C#SV1%QW0^L_QE]CE9EDT*>746'PPHRQU@,=%%MRS4]_*0]/I:?YV)JK)3;HW+QS/X;_+\&/"J M^P6N@]V%D7O2J0TEILZ[C0B>]@G!7P>#RT;P3SI-%H?-5J@5N?ILOCQHG?J :D\>UZ8Z9BV&7R&>G9AA).-@MBX#)Y2N7G@:44E M];/SJ^<7=':494690KNVV7:K>/I*@]$EF;4RHW#/&UZ]V:7,&\M(L)D&:*#A MY4DWY?7]M1&3GG/C.9'.3231(E?L+#^,6.>R[Q3N\>QHV1R:NSUSYH3:D*^T M#SO:U2\\0ET8U0))G/(OH?@D[-"&T=F$]U#0?M$=GAW%+AIND>V58J?3Z]V5 MSR1S]9GL@DL=&0"3@%F02J4 13]Q:\/UE^H+F8/!"V-Q3V\(=?6&[(NZH80T MK%:51N,M_-V\'!ZB;LR%G^.P&:J[%'=<71G;L#[3':OIVD/\+1=RX\'0SLZ&JX/AF-:0BQ&%I],OP)6+(71U M,>SP\HRDR2;5?J3BK<^7PG0X/:*9=A(>ACD4O+#2-C@8EI$U"F9&[\E.6XMTKBZ%(]*,22^,NREP MQ_(H+&>@GH)->FDD)S]WGZ9DMI/HTE>'PNE1INY/B+A(A-,BOT7+Q[$!QTD-N+ \" Z]+JY> _=8PX\L7Y\4"7]DF"(I M9)GOYC6PH.")(;:#V\"O-)H+=1O8L)7MOS_&4]%NE/QV;@,/L94ZHMM@^SC9 MJ]M@"])G1KFH&'[7/I2KU^"()&-Y#=R-%SR6UV YD>T4#,]+H[C10ZTIQ0?O MQ0]P]1J<'F6:7H/3G,!X]1IXH^H]S$:1;.GI21*N;H/3HK\ETX>*G&,2PK)1 MEKBZ$'9X>86?F(1:[H)DN"5WVB3US3P(%A \,0?^XZK&S!Y[PVCCF6]] M,_^!A[A*7]T'9X3R*5E[2SXHPY 6N;H/CD^,[5>7!R=&GZ#@Z?XNF![V EI^[J._"" J,O4K+Q2=&Y1_KJ.C@IZENR M>;ZV?.&@C(/PU5VP"]: $1"MW.]&YB'Q'J:GZ;4S62[583 '@R=FV XN@^7. M6E>7@6M\C4[C__F-/ 27YDCN@W25[?!P6@_RP;SU6!88EI7Q\%1 MJ<9*/&!<3:<]ENM@.#HB%UK"JTA&KLZ#$Z1-W7T0O&=.P7T0 MNKH/_*'"2B&K/+U%VFFN>W4@G!@%+ME S*&E0R>1?'"M7]CEY6F$T59V[ ,[ MR7Q\E&N)(Z:$GX0WP08&3ZRSJS?A&/A::G;>W]\'^613^&;>!$_Q-7A$;P)S M]28A-.HI A=O4F^$.%^591";\]OV1#O:LWX<0H<,D&BAXJ(+\N M(<$OD^PR70@%7K0JC>+TP_/#(-]31]^M@&$.A<.))[R3 \&O])G+="#8L;5< M+E1:;V]2]NF(V'H2_@,OL35R=1^<$]+GWH9IM?N4SD;"5^_!$6GF1)T'R:OS MP'\Y4QJ_S-Y>6X7\M8SA!"E3=QTPI]$Y<47"75T'GM!@J)&3XF_E7/FE<_4< MG!;]+=D^P2]U'.R5AO";&+ )#+N\O#K/(GJ)?3[* MR3A%@B-&>D_"KU#U+L-GMX$,Z:M;83]39I80Y+AB:S?)P0H!=!3A"()/.=B\/=""[FK0^(@Y#]D5([UKEE-@W-C'V1BV96RDP&V6GI0QG9@@3H]T@T I-4!NB%2H#( M0_'2U_JGZ@PY&/4B._DJEAMY'\M7,2MIW4[K@\R'G]E3M?6_CRU.;K7%X[*, MP-:'W"$QG?^DQ$[15_$Q*W,&4R]JJJ*R(CJ+;M0M77Q!'?)D)I]3*\'3L5H/ M.)[G&&1A3SCBJO3^U)7',\Z^GSV'WL32L]#\9)I7 \QS3#<-I.VMNT\=QYT, M))^8ZB:E>0E[VXED.A2LC,C)[A7DI\QX-X' 5X%.4?=A7QBRWX'7%H3)G0+Y M!-P-/5A+*9M^MNV=[NEQXX,&+NWQY Y+7@]VH@>SZ."GBD34'Y/6H*H%('7# MO]W>_'=@?SE\+PFY4I7O X4H@#%1EOJL&-"_"! 5^%CK-]%GY38/5R3GRPT. M?]GB:;I0E^%;TQ]_JAT &8T@2&.D)."#$(K6AX]!."@$+^I<"+%(MB%ID*4B ML7U[(^F,CI#FG(Y@52+/3@F&"A"0CY&__-SW$F06(+_ 53.RU$>[N2/#=R2E M2G8."Y0F.T"JBZQ!7KPD IH=P&E0\V@5U0[45IPE F2J(UZ=5A'TIYKFOTWY&UWL:[O_RO794[Z1:0\3U4X5GD^_ MR"E>Y!>1XI6F("E0CR'N"*Q]$?HM$@.D?RU]N72U(F=Z)_#)_DX!E>4%Y9\? M^U[M'2*H7P2KJ1*4$[H AS)"8 <*I#_STV]BS'-JYQ<1(_^RGL1$K#_ZPU=) M9/Q29$?3WP3F#F.@K]V0A"6]8J,OJK@$2IMF^_5&SOY*E&L5]J3TW^OQ3^SX MOOB);<(\MKP%LR30LK*N2[5EY3G39L'^T#5[6G%+K7'= M>;._TX3!BKTX=W]\(*<'@H[-54 \\RUP!=.R6>T)1/PV$@VU(!C^RYFT-T9_ MF.-$?ZICR71RD+J38]QJQF*]?IL5A3.(_L#].WHH2(\\%*&-T9]-%[@\E,6G MF,O*!9YGQ+XXKX]X?Z$F)3+TT",Y-PC(3HZ+@*OPWX2 /D76BYZ5.81W"*D9 M#"WTUV:98?R,^LN%N-C0]_1X^:L70CBMA)*KOI)R17'3V]N\I>5K.OE';7.#;:PAP1[ MO,Y?FTS)(W4!NQ!A"X]A3>VLLL\E1GN?9QP]AU=$]Y(Q,A])'AV#<5.-$WA3&FU(X-Y)$!3 M&UI-E.G'T-4YL1U@7EAO>[HG$E?WQ+Y(/NCD$@VJT9A$7"'Y]W10>(CDL>_1 M OUBZ*.?3)"]_#C_'A.N3HIC$HU),'3$55>Q8[DIEK,&3\'4O3BB2SZ7\X : MOE8N?A[[>0JTDVJ#OMS1Y>JJ\(8(PY526H[P@U0S>'56G!+US>TE%YD4YY ^ M<:1>YQGQ*'D$9?#B52!'L??N:M/XH@T8](+0[KJ4WF&VGU_G\ O%:F\:2VO-+IMNBKNZ((^ U=41W1/3JCCB4 M/,2"S%0>9L\I_NJ-."+)6.1R6G4:[-(?L"WK]Z(TZ-,W1L1 M.0UOQ)=-+;Q ;X2-!+/O!7H4JGSFWWT<$O\MO1$>247RGOG2Z? [9486?6$[",E *4P9,TNVK"V(;N#RQU';P0/A5BW29'@@;5I,?I?QC MK?K8$<#5 >$_5M-7_\,9$4>XE0XGXN0H\T)?_0_'HQB36L+1DTJ&2%W=#WX3 M7#N8>XKWPV_5XM7[<'IT:3H?HJ?@?%B.I5Z=#UX0H*9.W\IB(Z^^@:OOX70H MSV85A;9/^#R#3(C,U0NQ"_* $1 M$NV5U7$PRVK@ H9T^$5MBK+^(8F,U2:U3<) M5%+AJSMB.\ \,=IV<$?XA=F7Z8Y8P.S48S^8GG#/U?)U&.E1,#MXG;%Q5@3R MQ$;'C2B5?PJ%K^Z(8U*-13&G59_Q9?G@%^Z.6""Z)4KXU>GO,CT3 M!7X^N/<]^="F@DRL$7053?Z6CHDYO ZWWL([^26"5[_$GGA='KVVHJS$4Y7K M6(UCX'7DB%Z)Q-4K<2AY3-7B,)DH\F#2OCHECD@S)^J3^#(+Z,)]$G:2&_52 MQ:B830^*X:M+XO0HTTR0. F/Q+5LPQ<29(?D(Q]Y" \T_NJ0."':LUE'P3/I M&?&;&+ (?5M)NY&B:/=^3GFU2YAB3# M$UF_3PA0G*"G"$42>.XWL8/]E;EZ- XEK P594;Q]V22 MX.2O^;*>NY?GK[%1?*O!1.*59SY7V'T ZCG3_9>[ON XCW(_?@I M)^N\/9N&JGY5MK 6U)M^MNV=[B]TXX,&-/=X@KKRDWXCJ14 M"7ZF3$4'*$UV@#!9UL"/)9VK!*\7R#+@L")>A:]+"/##CX5SDO:TUS5/U&>% M^+O,1KNQL=([#!*&7!/9$83 ?QM_J- ]8:U*X&5__?=GXX\%%O^1P(<5JAU M(#V7%:=$AU4(A\*2-3!?-J1,>X[2=?5^IM6 MOGEM1Q6;\D+%1E&;-9$;;(O9CD T-!6]05$TP-W>&$>$;&8P/S;:/#'N\,T. MO)DIT0"$_G."%PD%WAA0[@ET)?.' 0M_J_\)?2L(\)I&\ <:_!K+/WC7^@*( M0\-_0-.#$)"-BNT6Y?:&-1^$J[7X"=KHE%#A(@D)6BUHC10O@Z8JR7PX#, YDL008K3(A9=Q4ZF2YQGFBQR+T]EDOY&#-7 M$!; MHW9.*SA&X<)A:*!*!-)/&21#!6XO4&PQI! :[MC4IGZK"11=#S5#-=FS3-D4I5F!W": MKNXJ*H1[&:B03R-W$_918BUV'?.B[&ZYG5Y4GU7&PV2.?06)?.@83"UR3\PW M1* =70)7LZE5*(:MPO]"WD;(\Y,.X$D1_4 D4."_>2BAIU!80SD-^@-!F@*X M_D"3%8V%/U8EN+).L4&2^KOW#Q+;2(;GD"DHL@*$X0B(&EJ5 [H.,5]?A1B M5A\ &=F.K.%4-Y8A1I*@P6\1#V8%]'\8-+AB&Y MU.?RHSM]'[WSC= P;4M17+HW8P-;M=:%Y7ZXY@NNV"JY&#N RFHT&@A&-JBJ MD(&N0">T$3I4S(*.(4V*H5@[\I9^>1VRAY^>BNFGWUFDK)R=@F*4BJT-=&%" M0VB"DV,( -&&,\4+L8=T"4'IPH$,F1B\B87P.9K<&9:7L8>JV,KP(BLV(0/* MB0K\*<)RI20)?'.ZP0!W]7Q]]D%6U,<$HU8^6\<0)M%[ FU,][TA!F+MC;!M MSGX%5DA+*#@2Q-(!VJT)Q$L!YA6#= MD]448,HE!1K%*A(]FLRK4^-;^&=^?@OWYR_BY^?'4,>'OD/R#9YS!!05GY,8 M0]O<)O>P16.\R3K,_)!Y:,#H37@SY'Q)"%&9@1I7-$& M P&+5%9(09U!D*#E 91U&JW=!G3["JC+%H)/\:3P^$92QV _L7L"[8U FU,@ MQ]%E&91#QU9I?35'MD!_V2[!\12B"03!B$EB\8W^#45ST_RW==.+/1?W6[4^ MZTL/C4SC=93.("-&ZT/X3?$"OXCY4\0=87^=SBQ;6? M90RBW5[;'0HW_4*N0NDW801X(4()[$ !OPCSTV]BS'-JYQ<1(_^RGL0N/OW1 M'^Z"LUORN58P9GW4#,>4%A ?_W4,]#TU)(%;DQ?F& J$;T*ZV/_]8.:W'8QE MZDXZ^)1D7B/9UW!UAXS&G;?NU%D);6$K3 X]<[SNI%D/YI<:1!Y*/S7ENLS@+P1W?3_-<\ ?\ESR]AKK!=U6LX[XG:)K\9FJ'TV MXU7BD+D'^M!-F.EDV*)VP3^QCK#99+9CXU[N@CL%-)'9/(9 4("XT6:&VP . M!G-C79ZA[?( M$A>Y5[$))0H*R?+KG8WV\+FKYZ'U/GA]D*=1FI&%(W@::?*>P#O";OJ%/5U M]+PH$H^LJ*'XL1&?(P,XJO *B10G7[(J?'\%H$ S^I74NKW) E90]:!'5H.+ MHL5&J%J,^#N;K?R#J%U@41(>2PRTA@"QJZ,_ 2"NM8'8G!(R$%CT?E7"J[4% MJ<$*A#*0 8NCT4U)EN"]\+*F$,GB6RYU1\6,0 GDPB('^GSS]F:,W?O&8D9H MNR;) MR7OF!1;K,B/].]B[Q(9$!#QH?%\4(70'49&!OA M> 6P.)2",Y"-;#\4 ))D GDVT4<(@.GM34.#_T#Y!3J>0#- $U0]YL 2"ACA MP 2OR!HN74)'E 9 UF/\.&2*7@-?.]^O #M6RM@/_@+D]RE1'EV#;!CIQBX=<0M"3B>Z1SB\ MO( 1M1JQS29\E7[V,;JO.P1T/=V2'0S@=>+C*((T1F>TL *]P[@3'4M=GNSV M9K^C64=!^$)#S! $B&\# !^ +VYI,GRW#+\9 4$:X A4P, 5A!AXMYJ^#%Y$ M/\CMC;%=25-Q_G[ VKA(Z!6A0(8OLG)3=+P?P54E]#W*6X%OT%-;(<1%247Y MIO#='-^$.''FP;ZXGKR#R,>\5Y/@;:$\MB&-#!PPKO;V!F*.P,._P>L+&$2( MHJZ "]BNEU44'A4-PMMM03&G\[K[RCW1 E"K@C]HPQ?+(LX_89')(5O;2,;+ MZ0H1AQ>%7JXO+6*E"Y-B'$5K!S)O)@/'=53$*0]_)^/Q?^:H\8M@[_\A_D,% M@F$*S2]&O^-U2X?3@,D4X3G:7H M0!P8\9*F0-HQ8IVW-Y%_=& T]!5#%%:WT O39E92&2 J0EB:1$BD&GO!S$,! M5K ;Y8M:G!"^OXBQW]BWQ4)L$,'" Y,%QGE=K707>XW59]28Z4P5\;EV#"GO MH)'];$C<] _ZT%'[ OJP4-ZCFK4\<,._B5P*?ZB3J&,X8DH*9FZX'@D_!QYG M0JU&S7+=9OYG^YW)SJHA*A_N%2O)V$A[::0?GQ^%N#((5B)J.9*7QUD0B4D1 M]9%+_*2RL<]I2WE(Q/F70F%*]IN3-C=\RW;I\J>@,(]3(#ZJC7 E79:#4NQ] M-&ZGNH^)7%'ZB'8+3^WD8TZD9[7H^\MC+)9-C^1N)E5L_:3&,4U[*8VFS\/& MR\=[+Z4*/T%!C$69L!"/C&;MGYV(5GK\]V>P]:;)O9=)N5CI\>GD,%T,YZNY M6/HQ'XV^)/I/?>$C(F9'[=D#KU&:E K7*E3D9[5)LJ/7!Z8X'(!"M3\,OFDJ MPTPC:O7GJ*J%"MU!@4Y/AN)'N).F,WFU/^W71E3D27IXUQKMVJM8H]0J13W^ MVTC HXS*>:$3S+>U;O/S89(A5>KQE?Z8"9G.9Z/,2N0#R79CE7PAF9Q*U+14 MBV=JF41T4F5G[W!O@V$"A++]83L:*Y"9F33.<1]!KE]M1LO__ML.3H4AE?IH M5)[?\UKG*?G:[DT4^F.:[;R,WSFU_%D)TZ5X6WS[79OT*F(LSC-11X'454CIS_? MXJU\[./A3:WDGJ1TBYQ49;DW^;=5Z3QGU.?'C"+W)VJC(VM90#VT?[Y,DN_/ M%;J?JA1&K\%6G:CM!MULOG60S%>EU6XEN M/R$$"[&&^CSLQ*>*^N\HRG6[!>$].!9Z#38-529NU(PDAV1%C@L2W7DO272E M&DYGJKU2CGMO#SKCX-/C,$,//QOQ9OPM_$HE1F\/S5HO_3A2GY1G\4U(=EYF MJ78MU*F1H/SS9Z[-O%:&HI+[R8.T*O,S6OX,2I'JI 'D1F98)CLQ8:QV&;G1 M[O;&_4F,$M2'D9IJ/VE/Y'.H!%YC?7$0DIGR6*N6NUDF,6CT(],&&VGEBO*_ M+V*8_V 9MCKM*;W!X]N_?/SM,?&J*-$G.?$X[&IBH9^=1E\FA9<7F9N]CI1J MX_E-JN4?$STMDX@WGYH%_KWP.:34[E.L4IX4'MY?PL-,2GQF&ZWRQ_3]YWB4 M>@IGVZ6?ZNO3\)'/U9Y:G_]VV<]$:Y@?5O_M/!?XVD\R&J\,24K67B:1(/4D M<]/&;/KXQ(7^33[,WM_R6O)-'+VQ[..'^%AM=B=BL"(^_=MXC7S&M<_,H#EZ M?6RJE,IH=%;-?W:EGARFE=GG2S3#O22B*LI;83NU7D>4&\+GXVNIUJSVV2 3 M_GQ+E!\S_V8R0BI25 ?_OB0>^L+XL]:A.ZG64^W?FB!T:Z5!*Z,^_7RC:U6: M+E>R3\_#,. C4@4\)RI\J,8DA%"P,BXK3? RSN4[J7CBLZP./R>E?\GT(Y,M M,^6^G$HTZ.Z+)KU(LW+Z7WB/?$T6Z>=VY-]0\CU;Z_^9Z-(_TD9&HC($$&-))&L626:;>?LI0ZBR8Z+VWI_R^Q MO)%810(@FF_5GH0 )PDF^ %>>&$&EPFA 6$&;\3IO[;V#-WO=8MW(7V*0E<@ M8UZ4I6.J%1A/PX-O(';Q.7JBY2D^^W2IV=O?@]"3>@>@D;8=&H,YDY1$'-)5 M,NG<8SY4" .A93TFJE)6,(I/8R]+F1^^[E'V/9W94H523$OO,+,#ND*#7"21 M- XH48-ED.'>]/>]#24(C^['.[_V+FOUC]LHFR(AZ(EVHXU^,NU=\;)\QV9X M5^WK@CG,*V"Q61CF^8="JEYU>+EKQ6&1]T@VQ("F%%^+1T_2F%_K9)7Y2:WH M$:W#5$.K,NI1+LH7B\]ZE^OTG%S>PGO!1L[?4#4$GXB$ M!Q@S>/-YG?\7=N1(]C;>7 "_=%N5C^F,DM>MJ M8M@%@&W!\SR&'O_@0(6<6I^(Q_:L0/-Q8 054.@T*1JBG3D"9<8'G7X;VV7! ME*_#[5:8>!BDN4[DBY.'%[-ZXD.CAD/B M=?(^"/Z-^/")<=%/^N+R67JLA:E=FZ6U,[5/#L'"4O)8E7:6LMUT8XDJ7C>-GZ+O.V=ITZ$:@T[ ;(L._['5HC7&P%K[P6YFUS(X M\"%K[@B4]SZTAZ24C%%O:;+)@46"/BC)-VB>LII(EE41>> M[Z9(Q.@Q"7_^_']5_OWG+U!+ 0(4 Q0 ( 6#&U,J2:.Z?P< $@? ; M " 0 !C96\S,#)C97)T:69I8V%T:6]N,C R,2YH=&U0 M2P$"% ,4 " %@QM33UPJ\&T$ !=% &P @ &X!P M8V5O.3 V8V5R=&EF:6-A=&EO;C(P,C$N:'1M4$L! A0#% @ !8,;4SG0 MR!ER!P *1\ !L ( !7@P &-F;S,P,F-E/<]<. #FI@ $0 @ &I& =&%Y9"TR M,#(Q,#4S,2YX&UL4$L! A0#% @ M!8,;4\CX#I"N#P &<\ !4 ( !GST '1A>60M,C R,3 U M,S%?9&5F+GAM;%!+ 0(4 Q0 ( 6#&U.O &B77$P !1E! 5 M " 8!- !T87ED+3(P,C$P-3,Q7VQA8BYX;6Q02P$"% ,4 " % M@QM3Q\9@?[\R #J2 , %0 @ $/F@ =&%Y9"TR,#(Q,#4S M,5]P&UL4$L! A0#% @ !8,;4PWZ$_T6.0$ -1<, \ M ( ! 60R,#(Q,3!K+FAT;5!+!08 "@ * *P" !$!@( " ! end