0001558370-20-004848.txt : 20200501 0001558370-20-004848.hdr.sgml : 20200501 20200430182435 ACCESSION NUMBER: 0001558370-20-004848 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 56 CONFORMED PERIOD OF REPORT: 20200331 FILED AS OF DATE: 20200501 DATE AS OF CHANGE: 20200430 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Cactus, Inc. CENTRAL INDEX KEY: 0001699136 STANDARD INDUSTRIAL CLASSIFICATION: OIL & GAS FILED MACHINERY & EQUIPMENT [3533] IRS NUMBER: 352586106 FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-38390 FILM NUMBER: 20837565 BUSINESS ADDRESS: STREET 1: 920 MEMORIAL CITY WAY STREET 2: SUITE 300 CITY: HOUSTON STATE: TX ZIP: 77024 BUSINESS PHONE: 713-626-8800 MAIL ADDRESS: STREET 1: 920 MEMORIAL CITY WAY STREET 2: SUITE 300 CITY: HOUSTON STATE: TX ZIP: 77024 10-Q 1 whd-20200430x10q.htm 10-Q
0047159000473980002795800027958000one-month LIBORone-month LIBORthree-month LIBORthree-month LIBOR0.0150.0150001699136--12-312020Q1false00016991362018-02-012018-02-280001699136srt:MinimumMemberwhd:UnitedStatesWorkforceMemberwhd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136srt:MinimumMembersrt:ExecutiveOfficerMemberwhd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136srt:MaximumMemberwhd:UnitedStatesWorkforceMemberwhd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136srt:MaximumMembersrt:ExecutiveOfficerMemberwhd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136srt:ChiefExecutiveOfficerMemberwhd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136srt:DirectorMemberwhd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136us-gaap:CommonClassAMemberwhd:CwUnitsRedeemedForClassCommonStockMember2019-01-012019-03-310001699136us-gaap:CommonClassAMemberwhd:CwUnitsRedeemedForClassCommonStockMember2018-02-012019-03-310001699136us-gaap:CommonClassAMemberus-gaap:CommonStockMember2020-01-012020-03-310001699136us-gaap:CommonClassBMemberus-gaap:CommonStockMember2019-01-012019-03-310001699136us-gaap:CommonClassAMemberus-gaap:CommonStockMember2019-01-012019-03-310001699136us-gaap:RetainedEarningsMember2020-03-310001699136us-gaap:NoncontrollingInterestMember2020-03-310001699136us-gaap:AdditionalPaidInCapitalMember2020-03-310001699136us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-03-310001699136us-gaap:RetainedEarningsMember2019-12-310001699136us-gaap:NoncontrollingInterestMember2019-12-310001699136us-gaap:AdditionalPaidInCapitalMember2019-12-310001699136us-gaap:AccumulatedOtherComprehensiveIncomeMember2019-12-310001699136us-gaap:RetainedEarningsMember2019-03-310001699136us-gaap:NoncontrollingInterestMember2019-03-310001699136us-gaap:AdditionalPaidInCapitalMember2019-03-310001699136us-gaap:AccumulatedOtherComprehensiveIncomeMember2019-03-310001699136us-gaap:RetainedEarningsMember2018-12-310001699136us-gaap:NoncontrollingInterestMember2018-12-310001699136us-gaap:AdditionalPaidInCapitalMember2018-12-310001699136us-gaap:AccumulatedOtherComprehensiveIncomeMember2018-12-310001699136us-gaap:CommonClassBMemberus-gaap:CommonStockMember2020-03-310001699136us-gaap:CommonClassAMemberus-gaap:CommonStockMember2020-03-310001699136us-gaap:CommonClassBMemberus-gaap:CommonStockMember2019-12-310001699136us-gaap:CommonClassAMemberus-gaap:CommonStockMember2019-12-310001699136us-gaap:CommonClassBMemberus-gaap:CommonStockMember2019-03-310001699136us-gaap:CommonClassAMemberus-gaap:CommonStockMember2019-03-310001699136us-gaap:CommonClassBMemberus-gaap:CommonStockMember2018-12-310001699136us-gaap:CommonClassAMemberus-gaap:CommonStockMember2018-12-310001699136us-gaap:SubsequentEventMember2020-04-012020-04-300001699136whd:LowOilPricesAndCoronavirusCovid19Member2020-03-012020-03-310001699136whd:LowOilPricesAndCoronavirusCovid19Member2020-01-012020-03-310001699136us-gaap:ConstructionInProgressMember2020-03-310001699136us-gaap:ConstructionInProgressMember2019-12-310001699136whd:FinanceLeaseRightOfUseAssetMember2020-03-310001699136whd:ComputerAndSoftwareMember2020-03-310001699136us-gaap:MachineryAndEquipmentMember2020-03-310001699136us-gaap:LandMember2020-03-310001699136us-gaap:FurnitureAndFixturesMember2020-03-310001699136us-gaap:EquipmentLeasedToOtherPartyMember2020-03-310001699136us-gaap:BuildingAndBuildingImprovementsMember2020-03-310001699136whd:FinanceLeaseRightOfUseAssetMember2019-12-310001699136whd:ComputerAndSoftwareMember2019-12-310001699136us-gaap:MachineryAndEquipmentMember2019-12-310001699136us-gaap:LandMember2019-12-310001699136us-gaap:FurnitureAndFixturesMember2019-12-310001699136us-gaap:EquipmentLeasedToOtherPartyMember2019-12-310001699136us-gaap:BuildingAndBuildingImprovementsMember2019-12-310001699136us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-01-012020-03-310001699136us-gaap:AccumulatedOtherComprehensiveIncomeMember2019-01-012019-03-310001699136us-gaap:RevolvingCreditFacilityMember2019-12-310001699136whd:CactusWellheadLlcAndItsSubsidiariesMemberus-gaap:RevolvingCreditFacilityMember2018-08-210001699136whd:CactusWellheadLlcAndItsSubsidiariesMemberus-gaap:LetterOfCreditMember2018-08-210001699136us-gaap:RevolvingCreditFacilityMember2020-03-310001699136whd:CactusWellheadLlcAndItsSubsidiariesMember2020-01-012020-03-310001699136whd:CactusWellheadLlcAndItsSubsidiariesMember2019-01-012019-12-310001699136us-gaap:CommonClassBMember2020-01-012020-03-310001699136us-gaap:CommonClassBMember2019-01-012019-03-310001699136us-gaap:RetainedEarningsMember2019-01-012019-03-310001699136us-gaap:NoncontrollingInterestMember2019-01-012019-03-310001699136us-gaap:CommonClassAMember2020-01-012020-03-310001699136us-gaap:CommonClassAMember2019-01-012019-03-310001699136us-gaap:RetainedEarningsMember2020-01-012020-03-310001699136us-gaap:CommonClassAMember2020-03-192020-03-190001699136whd:CwUnitHoldersOtherThanCactusIncMember2020-03-192020-03-190001699136whd:CactusIncMember2020-01-012020-03-310001699136whd:CwUnitHoldersOtherThanCactusIncMember2019-01-012019-03-310001699136whd:SecondaryOfferingMember2019-03-310001699136whd:CactusWellheadLlcAndItsSubsidiariesMemberus-gaap:RevolvingCreditFacilityMember2018-08-212018-08-210001699136whd:LondonInterbankOfferedRateThreeMonthMember2020-01-012020-03-310001699136whd:LondonInterbankOfferedRateOneMonthMember2020-01-012020-03-310001699136whd:LondonInterbankOfferedRateThreeMonthMember2019-01-012019-12-310001699136whd:LondonInterbankOfferedRateOneMonthMember2019-01-012019-12-310001699136whd:RentalRevenueMember2020-01-012020-03-310001699136us-gaap:ProductMember2020-01-012020-03-310001699136us-gaap:ProductAndServiceOtherMember2020-01-012020-03-310001699136whd:RentalRevenueMember2019-01-012019-03-310001699136us-gaap:ProductMember2019-01-012019-03-310001699136us-gaap:ProductAndServiceOtherMember2019-01-012019-03-310001699136us-gaap:RevenueFromContractWithCustomerMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-03-310001699136us-gaap:CostOfGoodsProductLineMemberus-gaap:SupplierConcentrationRiskMember2020-01-012020-03-310001699136us-gaap:RevenueFromContractWithCustomerMemberus-gaap:CustomerConcentrationRiskMember2019-01-012019-03-310001699136us-gaap:CostOfGoodsProductLineMemberus-gaap:SupplierConcentrationRiskMember2019-01-012019-03-310001699136us-gaap:CommonClassBMember2020-03-310001699136us-gaap:CommonClassAMember2020-03-310001699136us-gaap:CommonClassBMember2019-12-310001699136us-gaap:CommonClassAMember2019-12-310001699136us-gaap:CommonClassAMember2020-01-302020-01-3000016991362019-03-3100016991362018-12-310001699136us-gaap:NoncontrollingInterestMember2020-01-012020-03-310001699136us-gaap:AdditionalPaidInCapitalMember2020-01-012020-03-310001699136us-gaap:AdditionalPaidInCapitalMember2019-01-012019-03-3100016991362019-01-012019-03-310001699136us-gaap:CostOfGoodsProductLineMemberus-gaap:SupplierConcentrationRiskMember2020-03-310001699136us-gaap:CostOfGoodsProductLineMemberus-gaap:SupplierConcentrationRiskMember2019-12-3100016991362020-03-3100016991362019-12-310001699136us-gaap:CommonClassBMember2020-04-280001699136us-gaap:CommonClassAMember2020-04-2800016991362020-01-012020-03-31xbrli:sharesiso4217:USDiso4217:USDxbrli:sharesxbrli:purewhd:positionwhd:customer

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

FORM 10-Q

(MARK ONE)

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

For the quarterly period ended March 31, 2020

or

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

Commission File Number: 001-38390

Cactus, Inc.

(Exact name of registrant as specified in its charter)

Delaware

35-2586106

(State or other jurisdiction of
incorporation or organization)

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

920 Memorial City Way, Suite 300
Houston, Texas
(Address of principal executive offices)

77024
(Zip Code)

(713626-8800

(Registrant’s telephone number, including area code)

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Class A Common Stock, par value $0.01

WHD

New York Stock Exchange

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

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

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

Large accelerated filer 

Accelerated filer 

Non-accelerated filer    

Smaller reporting company

Emerging growth company

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

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

As of April 28, 2020, the registrant had 47,400,617 shares of Class A common stock, $0.01 par value per share, and 27,957,699 shares of Class B common stock, $0.01 par value per share, outstanding.

CAUTIONARY NOTE REGARDING FORWARD-LOOKING STATEMENTS

This Quarterly Report on Form 10-Q (the “Quarterly Report”) contains “forward-looking statements” within the meaning of Section 21E of the Securities Exchange Act of 1934, as amended (the “Exchange Act”). When used in this Quarterly Report, the words “could,” “believe,” “anticipate,” “intend,” “estimate,” “expect,” “project” and similar expressions are intended to identify forward-looking statements, although not all forward-looking statements contain such identifying words. These forward-looking statements are based on our current expectations and assumptions about future events and are based on currently available information as to the outcome and timing of future events.

Forward-looking statements may include statements about:

demand for our products and services, which is affected by, among other things, changes in the price of crude oil and natural gas in domestic and international markets;
the level of growth in number of rigs, pad sizes, well spacings and associated well count, availability of takeaway capacity and availability of storage capacity;
capital spending discipline exercised by customers;
changes in the number of drilled but uncompleted wells and the level of completion activity;
the size and timing of orders;
availability of raw materials and imported items;
transportation differentials associated with reduced capacity in and out of the storage hub in Cushing, Oklahoma;
expectations regarding raw materials, overhead and operating costs and margins;
availability of skilled and qualified workers;
potential liabilities such as warranty and product liability claims arising out of the installation, use or misuse of our products;
the possibility of cancellation of orders;
our business strategy;
our financial strategy, operating cash flows, liquidity and capital required for our business;
our future revenue, income and operating performance;
our ability to pay dividends and the amounts of any such dividends;
the termination of relationships with major customers or suppliers;
laws and regulations, including environmental regulations, that may increase our costs, limit the demand for our products and services or restrict our operations;
disruptions in the political, regulatory, economic and social conditions domestically or internationally;
the ultimate severity and duration of the ongoing outbreak of coronavirus (COVID-19) and the extent of its impact on our business;

i

outbreaks of other pandemic or contagious diseases that may disrupt our operations, suppliers or customers or impact demand for oil and gas;
the impact of actions taken by the Organization of Petroleum Exporting Countries (OPEC) and other oil and gas producing countries affecting the supply of oil and natural gas;
increases in import tariffs assessed on products from China and imported raw materials used in the manufacture of our goods in the United States which could negatively impact margins and our working capital;
the significance of future liabilities under the Tax Receivable Agreement (the “TRA”) we entered into with certain current or past direct and indirect owners of Cactus LLC (the “TRA Holders”) in connection with our initial public offering;
a failure of our information technology infrastructure or any significant breach of security;
potential uninsured claims and litigation against us;
competition within the oilfield services industry;
our dependence on the continuing services of certain of our key managers and employees;
currency exchange rate fluctuations associated with our international operations; and
plans, objectives, expectations and intentions contained in this Quarterly Report that are not historical.

Although forward-looking statements reflect our good faith beliefs at the time they are made, forward-looking statements involve known and unknown risks, uncertainties and other factors, including the factors described under Item 1A, “Risk Factors” in our Annual Report on Form 10-K for the year ended December 31, 2019 (our “2019 Annual Report”), this Quarterly Report and in our other filings with the SEC, which may cause our actual results, performance or achievements to differ materially from anticipated future results, performance or achievements expressed or implied by such forward-looking statements.

Should one or more of the risks or uncertainties described in this Quarterly Report occur, or should underlying assumptions prove incorrect, our actual results and plans could differ materially from those expressed in any forward-looking statements.

All forward-looking statements, expressed or implied, included in this Quarterly Report are expressly qualified in their entirety by this cautionary statement. This cautionary statement should also be considered in connection with any subsequent written or oral forward-looking statements that we or persons acting on our behalf may issue.

Except as otherwise required by applicable law, we disclaim any duty to update any forward-looking statements, all of which are expressly qualified by the statements in this section, to reflect events or circumstances after the date of this Quarterly Report.

ii

PART I - FINANCIAL INFORMATION

Item 1.   Financial Statements.

CACTUS, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED BALANCE SHEETS

(unaudited)

March 31, 

December 31, 

    

2020

    

2019

(in thousands, except per share data)

Assets

Current assets

 

  

 

  

Cash and cash equivalents

$

230,202

$

202,603

Accounts receivable, net of allowance of $1,430 and $837, respectively

 

95,236

 

87,865

Inventories

 

100,301

 

113,371

Prepaid expenses and other current assets

 

9,535

 

11,044

Total current assets

 

435,274

 

414,883

Property and equipment, net

 

162,871

 

161,748

Operating lease right-of-use assets, net

24,872

26,561

Goodwill

 

7,824

 

7,824

Deferred tax asset, net

217,916

222,545

Other noncurrent assets

 

1,338

 

1,403

Total assets

$

850,095

$

834,964

Liabilities and Equity

Current liabilities

Accounts payable

$

34,476

$

40,957

Accrued expenses and other current liabilities

 

19,275

 

22,067

Current portion of liability related to tax receivable agreement

14,630

14,630

Finance lease obligations, current portion

 

6,498

 

6,735

Operating lease liabilities, current portion

6,535

6,737

Total current liabilities

 

81,414

 

91,126

Deferred tax liability, net

 

1,511

 

1,348

Liability related to tax receivable agreement, net of current portion

201,902

201,902

Finance lease obligations, net of current portion

 

4,033

 

3,910

Operating lease liabilities, net of current portion

18,809

20,283

Total liabilities

 

307,669

 

318,569

Commitments and contingencies

Stockholders' equity

Preferred stock, $0.01 par value, 10,000 shares authorized, none issued and outstanding

 

 

Class A common stock, $0.01 par value, 300,000 shares authorized, 47,398 and 47,159 shares issued and outstanding

 

474

 

472

Class B common stock, $0.01 par value, 215,000 shares authorized, 27,958 shares issued and outstanding

Additional paid-in capital

195,381

194,456

Retained earnings

147,670

132,990

Accumulated other comprehensive loss

 

(1,067)

 

(452)

Total stockholders' equity attributable to Cactus Inc.

 

342,458

 

327,466

Non-controlling interest

199,968

188,929

Total stockholders' equity

542,426

516,395

Total liabilities and equity

$

850,095

$

834,964

The accompanying notes are an integral part of these condensed consolidated financial statements.

1

CACTUS, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF INCOME

(unaudited)

Three Months Ended March 31, 

    

2020

    

2019

    

(in thousands, except per share data)

Revenues

Product revenue

$

87,031

$

86,640

Rental revenue

 

36,163

 

38,497

Field service and other revenue

 

30,945

 

33,738

Total revenues

 

154,139

 

158,875

Costs and expenses

Cost of product revenue

 

56,135

 

53,018

Cost of rental revenue

 

19,339

 

17,791

Cost of field service and other revenue

 

23,811

 

26,906

Selling, general and administrative expenses

 

13,662

 

12,668

Severance expenses

1,007

Total costs and expenses

 

113,954

 

110,383

Income from operations

 

40,185

 

48,492

Interest income, net

 

410

 

23

Other expense, net

 

 

(1,042)

Income before income taxes

 

40,595

 

47,473

Income tax expense (benefit)

 

7,497

 

(973)

Net income

$

33,098

$

48,446

Less: net income attributable to non-controlling interest

14,115

21,639

Net income attributable to Cactus Inc.

$

18,983

$

26,807

Earnings per Class A share - basic

$

0.40

$

0.69

Earnings per Class A share - diluted

$

0.40

$

0.59

Weighted average Class A shares outstanding - basic

47,270

38,719

Weighted average Class A shares outstanding - diluted

 

75,395

 

75,246

The accompanying notes are an integral part of these condensed consolidated financial statements.

2

CACTUS, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME

(unaudited)

Three Months Ended March 31, 

    

2020

    

2019

(in thousands)

Net income

$

33,098

$

48,446

Foreign currency translation adjustments

(1,083)

270

Comprehensive income

$

32,015

$

48,716

Less: comprehensive income attributable to non-controlling interest

13,647

21,786

Comprehensive income attributable to Cactus Inc.

$

18,368

$

26,930

The accompanying notes are an integral part of these condensed consolidated financial statements.

3

CACTUS, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(unaudited)

Accumulated

Class A

Class B

Additional

Other

Non-

Total

    

Common Stock

Common Stock

Paid-In

Retained

    

Comprehensive

    

controlling

    

Equity

(in thousands)

 

Shares

  

Amount

  

Shares

  

Amount

  

Capital

  

Earnings

  

Income (Loss)

  

Interest

  

(Deficit)

Balance at December 31, 2018

37,654

$

377

37,236

$

$

126,418

$

51,683

$

(820)

$

184,670

$

362,328

Adjustment to prior periods

14,035

488

(14,523)

 

Member distributions

(235)

(235)

Effect of CW Unit redemptions

8,518

85

(8,518)

43,899

(50)

(43,934)

 

Adjustment to deferred tax asset from CW Unit redemptions

(8,232)

(8,232)

Tax impact of equity transactions

13,580

13,580

Equity award vestings

219

2

(1,474)

(1,472)

Other comprehensive income

123

147

270

Stock-based compensation

1,676

1,676

Net income

26,807

21,639

48,446

Balance at March 31, 2019

46,391

$

464

28,718

$

$

189,902

$

78,490

$

(259)

$

147,764

$

416,361

Balance at December 31, 2019

47,159

$

472

27,958

$

$

194,456

$

132,990

$

(452)

$

188,929

$

516,395

Member distributions

(2,203)

 

(2,203)

Tax impact of equity transactions

(94)

(94)

Equity award vestings

239

2

(221)

(1,138)

(1,357)

Other comprehensive income

(615)

(468)

(1,083)

Stock-based compensation

1,240

733

1,973

Cash dividends declared ($0.09 per share)

(4,303)

(4,303)

Net income

18,983

14,115

33,098

Balance at March 31, 2020

47,398

$

474

27,958

$

$

195,381

$

147,670

$

(1,067)

$

199,968

$

542,426

The accompanying notes are an integral part of these condensed consolidated financial statements.

4

CACTUS, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(unaudited)

Three Months Ended March 31, 

    

2020

    

2019

    

(in thousands)

Cash flows from operating activities

Net income

$

33,098

$

48,446

Reconciliation of net income to net cash provided by operating activities:

Depreciation and amortization

 

10,980

 

8,881

Deferred financing cost amortization

 

42

 

42

Stock-based compensation

 

1,973

 

1,676

Provision for expected credit losses

 

625

 

Inventory obsolescence

1,353

224

Loss on disposal of assets

961

863

Deferred income taxes

4,848

(2,796)

Changes in operating assets and liabilities:

Accounts receivable

 

(8,244)

 

(15,597)

Inventories

 

8,306

 

(8,875)

Prepaid expenses and other assets

 

1,497

 

2,156

Accounts payable

 

(8,142)

 

192

Accrued expenses and other liabilities

 

(2,136)

 

(973)

Net cash provided by operating activities

 

45,161

 

34,239

Cash flows from investing activities

Capital expenditures and other

 

(9,441)

 

(14,655)

Proceeds from sale of assets

 

1,103

 

808

Net cash used in investing activities

 

(8,338)

 

(13,847)

Cash flows from financing activities

Payments on finance leases

 

(1,764)

 

(1,846)

Dividends paid to Class A common stock shareholders

(4,281)

Distributions to members

 

(2,203)

 

(235)

Repurchases of shares

(1,356)

(1,474)

Net cash used in financing activities

 

(9,604)

 

(3,555)

Effect of exchange rate changes on cash and cash equivalents

 

380

 

438

Net increase in cash and cash equivalents

 

27,599

 

17,275

Cash and cash equivalents

Beginning of period

 

202,603

 

70,841

End of period

$

230,202

$

88,116

Supplemental disclosure of cash flow information

Non-cash investing and financing activities:

Property and equipment acquired under finance leases

$

1,896

$

216

Property and equipment in payables

$

3,767

$

3,643

The accompanying notes are an integral part of these condensed consolidated financial statements.

5

CACTUS, INC. AND SUBSIDIARIES

NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS (unaudited)

(in thousands, except per share data, or as otherwise indicated)

1.   Preparation of Interim Financial Statements and Other Items

Basis of Presentation

The financial statements presented in this report represent the consolidation of Cactus Inc. (“Cactus Inc.”) and its subsidiaries (“the Company”), including Cactus Wellhead, LLC (“Cactus LLC”). Cactus Inc. is a holding company whose only material asset is an equity interest consisting of units representing limited liability company interests in Cactus LLC (“CW Units”). Cactus Inc. is the sole managing member of Cactus LLC and operates and controls all of the business and affairs of Cactus LLC and conducts its business through Cactus LLC and its subsidiaries. As a result, Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.’s Class A common stock, par value $0.01 per share (“Class A common stock”). Except as otherwise indicated or required by the context, all references to “Cactus,” “we,” “us” and “our” refer to Cactus Inc. and its consolidated subsidiaries.

The unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (“GAAP”) for interim financial information. Accordingly, these consolidated financial statements do not include all information or notes required by generally accepted accounting principles for annual financial statements and should be read together with our Annual Report on Form 10-K for the year ended December 31, 2019.

The consolidated financial statements include all adjustments, which are of a normal recurring nature, unless otherwise disclosed, necessary for a fair statement of the consolidated financial statements for the interim periods. The results of operations for any interim period are not necessarily indicative of the results to be expected for the full year.

Use of Estimates

In preparing our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.

Reclassifications

Certain prior period amounts have been reclassified to conform to the current period presentation.

Recent Accounting Pronouncements

Standards Adopted

Effective January 1, 2020, we adopted Financial Accounting Standards Board (“FASB”) Accounting Standards Update (“ASU”) 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance changed the measurement of credit losses on financial assets measured at amortized cost, including but not limited to trade receivables. The new guidance replaced the prior methodology for recognizing credit losses when it is probable that a loss has been incurred with an expected loss model that requires consideration of a broader range of information to estimate expected credit losses over the lifetime of an asset. The allowance for credit losses under the new guidance represents the portion of the asset’s amortized cost basis that we do not expect to collect over the asset’s contractual life, considering past events, current conditions and reasonable and

6

supportable forecasts of future economic conditions. Adoption of the standard did not impact our consolidated financial statements other than certain expanded disclosures. See further discussion and expanded disclosures at Note 3.

We also adopted FASB ASU 2017-04, Intangibles – Goodwill and Other (Topic 350) effective January 1, 2020. The new standard simplified the accounting for goodwill impairment by eliminating Step 2 of the current goodwill impairment test. Under the new standard, an entity performs its goodwill impairment test by comparing the fair value of a reporting unit with its carrying amount and recognizes an impairment charge for the amount by which the carrying amount exceeds the reporting unit’s fair value. The loss recognized should not exceed the total amount of goodwill allocated to that reporting unit. Adoption of this standard did not impact our consolidated financial statements.

2.   Concentrations, Risks and Uncertainties

Significant Customers

Our customers are engaged in the oil and natural gas exploration and production business primarily in the U.S. as well as Australia. Our receivables are spread over a number of customers, a majority of which are operators and suppliers to the oil and natural gas industry. For the three months ended March 31, 2020 and 2019, one customer represented 10% and 12%, respectively, of consolidated revenues, and no other customers represented 10% or more of our consolidated revenues during the comparative periods.

Significant Vendors

We purchase a significant portion of supplies, equipment and machined components from a single vendor located in China. For the three months ended March 31, 2020 and 2019, purchases from this vendor totaled $2.9 million and $12.7 million, respectively. These figures represent approximately 7% and 20% for the respective periods of our total third-party vendor purchases of raw materials, finished products, equipment, machining and other services. Amounts due to the vendor included in accounts payable in the consolidated balance sheets as of March 31, 2020 and December 31, 2019 totaled $1.9 million and $4.3 million, respectively.

Low Oil Prices and the Coronavirus (COVID-19)

The significant decline in oil demand due to COVID-19 coupled with the instability of oil prices caused by geopolitical issues and production levels, as well as limited availability of storage capacity have resulted in our customers announcing significant reductions to their capital expenditure budgets for 2020. Management’s expectation is that demand for our products and services will be severely impacted for the duration of 2020 and potentially beyond; however, we are currently unable to estimate the full impact to our business, how long this significant drop in demand will last or the depth of the decline.

In an effort to offset the reduction in revenues resulting from the weakened macroeconomic environment, we implemented certain cost reduction measures beginning in March 2020. These measures included, but were not limited to, the following:

50% reduction to our Chief Executive Officer’s base salary;
Salary reductions ranging from 25% to 50% for our other named executive officers;
Salary and wage reductions for the remaining U.S. workforce ranging from 2% to 15% depending on salary and position;
Reduction in board member compensation by 25%; and
Reduction of 277 U.S. employee positions.

We have also reduced our planned capital expenditures for 2020 and implemented additional headcount reductions in April 2020. See further discussion of the April workforce reductions at Note 12.

Due to the depressed oil price environment, our reduced cash flow projections resulting from expectations of reduced sales and significant declines in our market capitalization, we assessed whether our long-lived assets and

7

goodwill may have been impaired as of March 31, 2020. We performed quantitative impairment tests using management’s current projections that are subject to various risks and uncertainties of revenues, expenses and cash flows. Our goodwill impairment assessment also includes assumptions regarding discount rates, terminal value and control premiums. Estimates of future cash flows and fair value are highly subjective and inherently imprecise. These estimates can change materially from period to period based on many factors. Accordingly, if conditions change in the future, we may record impairment losses, which could be material to any particular reporting period. Although we determined based on our current impairment assessments that our long-lived assets and goodwill were not impaired as of March 31, 2020, we can provide no assurance that we will not incur an impairment loss in the future.

3. Accounts Receivable and Allowance for Credit Losses

We extend credit to customers in the normal course of business. Our customers are predominantly oil and gas companies in the U.S. Our receivables are short-term in nature and typically due in 30 to 45 days. We do not accrue interest on delinquent receivables. Accounts receivable includes amounts billed and currently due from customers and unbilled amounts for products delivered and services performed for which billings have not yet been submitted to the customers. Total unbilled revenue included in accounts receivable as of March 31, 2020 and December 31, 2019 was $21.5 million and $23.8 million, respectively.

We maintain an allowance for credit losses to provide for the amount of receivables we do not expect to collect. In our determination of the allowance for credit losses, we pool receivables with similar risk characteristics based on customer size, credit ratings, payment history, bankruptcy status and other factors known to us and apply an expected credit loss percentage. The expected credit loss percentage is determined using historical loss data adjusted for current conditions and forecasts of future economic conditions. Accounts deemed uncollectible are applied against the allowance for credit losses. The following is a rollforward of our allowance for credit losses. The increase in the allowance during the three months ended March 31, 2020 reflects the estimated impact of the current economic environment on our receivable balance.

Balance at 

Balance at 

Beginning of

Expense

End of

    

 Period

    

 (recovery)

    

Write off

    

Other

    

Period

Three Months Ended March 31, 2020

$

837

$

625

$

(32)

$

$

1,430

Three Months Ended March 31, 2019

 

576

 

 

 

2

 

578

4.   Inventories

Inventories are stated at the lower of cost or net realizable value. Cost is determined using standard cost (which approximates average cost) and weighted average methods. Costs include an application of related direct labor and overhead cost. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal and transportation. Reserves are made for excess and obsolete items based on a range of factors, including age, usage and technological or market changes that may impact demand for those products. Inventories consist of the following:

March 31, 

December 31, 

    

2020

    

2019

Raw materials

$

1,702

$

1,538

Work-in-progress

 

3,857

 

4,619

Finished goods

 

94,742

 

107,214

$

100,301

$

113,371

8

5. Property and Equipment, net

Property and equipment are stated at cost. We manufacture or construct most of our own rental assets. During the manufacture of these assets, they are reflected as construction in progress until complete. Property and equipment consists of the following:

March 31, 

December 31, 

    

2020

    

2019

Land

$

3,203

$

3,203

Buildings and improvements

 

21,812

 

21,655

Machinery and equipment

 

55,826

 

55,494

Vehicles under finance lease

24,936

24,275

Rental equipment

 

169,307

 

161,156

Furniture and fixtures

 

1,762

 

1,684

Computers and software

 

3,475

 

3,317

Gross property and equipment

 

280,321

 

270,784

Less: Accumulated depreciation

 

(130,853)

 

(123,397)

Net property and equipment

 

149,468

 

147,387

Construction in progress

 

13,403

 

14,361

Total property and equipment, net

$

162,871

$

161,748

6.    Debt

We had no debt outstanding as of March 31, 2020 and December 31, 2019.

On August 21, 2018, Cactus LLC entered into a five-year senior secured asset-based revolving credit facility with a syndicate of lenders and JPMorgan Chase Bank, N.A., as administrative agent for such lenders and as an issuing bank and swingline lender (the “ABL Credit Facility”). The ABL Credit Facility provides for $75.0 million in revolving commitments, up to $15.0 million of which is available for the issuance of letters of credit.

The ABL Credit Facility matures on August 21, 2023. The maximum amount that Cactus LLC may borrow under the ABL Credit Facility is subject to a borrowing base, which is based on a percentage of eligible accounts receivable and eligible inventory, subject to reserves and other adjustments. At March 31, 2020, in accordance with the terms of our borrowing base, we had access to the full $75.0 million revolving credit facility capacity.

At March 31, 2020 and December 31, 2019, although there were no borrowings outstanding under the ABL Credit Facility, the applicable margin on our Eurodollar borrowings was 1.5% plus an adjusted base rate of one- or three-month LIBOR. We were in compliance with all covenants under the ABL Credit Facility as of March 31, 2020.

7. Revenue

The majority of our revenues are derived from short-term contracts for fixed consideration. Product sales generally do not include right of return or other significant post-delivery obligations. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Revenues are recognized when we satisfy a performance obligation by transferring control of the promised goods or providing services to our customers at a point in time, in an amount specified in the contract with our customer and that reflects the consideration we expect to be entitled to in exchange for those goods or services. The majority of our contracts with customers contain a single performance obligation to provide agreed upon products or services. For contracts with multiple performance obligations, we allocate revenue to each performance obligation based on its relative standalone selling price. We do not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract with the customer. We do not incur any material costs of obtaining contracts.

We do not adjust the amount of consideration per the contract for the effects of a significant financing component when we expect, at contract inception, that the period between the transfer of a promised good or service to a customer and when the customer pays for that good or service will be one year or less, which is in substantially all cases. Payment terms and conditions vary, although terms generally include a requirement of payment within 30 to 45 days. Revenues

9

are recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. We treat shipping and handling associated with outbound freight as a fulfillment cost instead of as a separate performance obligation. We recognize the cost for the associated shipping and handling when incurred as an expense in cost of sales.

We disaggregate revenue into three categories: product revenues, rental revenues and field service and other revenues. We have predominately domestic operations, with a small amount of sales being generated in Australia. The following table presents our revenues disaggregated by category:

Three Months Ended March 31, 

    

2020

    

2019

Product revenue

$

87,031

57

%

$

86,640

55

%

Rental revenue

36,163

23

%

38,497

24

%

Field service and other revenue

30,945

20

%

33,738

21

%

Total revenue

$

154,139

100

%

$

158,875

100

%

At March 31, 2020, we had a deferred revenue balance of $1.5 million compared to the December 31, 2019 balance of $1.4 million. Deferred revenue represents our obligation to transfer products to or perform services for a customer for which we have received cash or billed in advance. The revenue that has been deferred will be recognized upon product delivery or as services are performed. As of March 31, 2020, we did not have any contracts with an original length of greater than a year from which revenue is expected to be recognized in the future related to performance obligations that are unsatisfied.

8. Tax Receivable Agreement (TRA)

In connection with our initial public offering (“IPO”) in February 2018, we entered into the TRA with certain direct and indirect owners of Cactus LLC (the “TRA Holders”). The TRA generally provides for payment by Cactus Inc. to the TRA Holders of 85% of the net cash savings, if any, in U.S. federal, state and local income tax or franchise tax that Cactus Inc. actually realizes or is deemed to realize in certain circumstances. Cactus Inc. will retain the benefit of the remaining 15% of these net cash savings.

The TRA liability is calculated by determining the tax basis subject to TRA (“tax basis”) and applying a blended tax rate to the basis differences and calculating the iterative impact. The blended tax rate consists of the U.S. federal income tax rate and an assumed combined state and local income tax rate driven by the apportionment factors applicable to each state. Subsequent changes to the measurement of the TRA liability are recognized in the statements of income as a component of other income (expense), net. As of March 31, 2020, the total liability from the TRA was $216.5 million with $14.6 million reflected in current liabilities based on the expected timing of our next payment. The payments under the TRA will not be conditional on a holder of rights under the TRA having a continued ownership interest in either Cactus LLC or Cactus Inc.

The term of the TRA commenced upon completion of our IPO and will continue until all tax benefits that are subject to the TRA have been utilized or expired, unless we exercise our right to terminate the TRA. If we elect to terminate the TRA early (or it is terminated early due to certain mergers, asset sales, other forms of business combinations or other changes of control), our obligations under the TRA would accelerate and we would be required to make an immediate payment equal to the present value of the anticipated future payments to be made by us under the TRA and such payment is expected to be substantial. The calculation of anticipated future payments will be based upon certain assumptions and deemed events set forth in the TRA, including the assumptions that (i) we have sufficient taxable income to fully utilize the tax benefits covered by the TRA and (ii) any CW Units (other than those held by Cactus Inc.) outstanding on the termination date are deemed to be redeemed on the termination date. Any early termination payment may be made significantly in advance of the actual realization, if any, of the future tax benefits to which the termination payment relates.

We may elect to defer payments due under the TRA if we do not have available cash to satisfy our payment obligations under the TRA. Any such deferred payments under the TRA generally will accrue interest from the due date for such payment until the payment date.

10

9. Equity

As of March 31, 2020, Cactus Inc. owned 62.9% of Cactus LLC as compared to 62.8% as of December 31, 2019. As of March 31, 2020, Cactus Inc. had outstanding 47.4 million shares of Class A common stock (representing 62.9% of the total voting power) and 28.0 million shares of Class B common stock (representing 37.1% of the total voting power).

Redemptions of CW Units

Pursuant to the First Amended and Restated Limited Liability Company Operating Agreement of Cactus Wellhead, LLC (the “Cactus Wellhead LLC Agreement”), holders of CW Units are entitled to redeem their CW Units, which results in additional Class A common stock outstanding. Since our IPO in February 2018, 32.6 million CW Units have been redeemed in exchange for shares of Class A common stock with 8.5 million occurring during the three months ended March 31, 2019 as part of a secondary offering. We did not receive any of the proceeds as part of the offering and incurred $1.0 million in offering expenses which were recorded in other expense, net, in the consolidated statement of income. No CW Unit redemptions occurred during the three months ended March 31, 2020.

Dividends

 

On January 30, 2020, our board of directors declared a cash dividend of $0.09 per share of Class A common stock of which $4.3 million was paid on March 19, 2020. A de minimis amount of dividends was paid during 2020 to restricted stock unit holders with accrued dividends that vested during the period.

Member Distributions

Distributions made by Cactus LLC are generally required to be made pro rata among all its members. For the three months ended March 31, 2020, Cactus LLC distributed $3.7 million to Cactus Inc. to fund the March 19, 2020 dividend payment and made pro rata distributions to its other members totaling $2.2 million over the same period. During the three months ended March 31, 2019, Cactus LLC made $0.2 million in pro rata distributions to its members other than Cactus Inc.

Limitation of Members’ Liability

Under the terms of the Cactus Wellhead LLC Agreement, the members of Cactus LLC are not obligated for debt, liabilities, contracts or other obligations of Cactus LLC. Profits and losses are allocated to members as defined in the Cactus LLC Agreement.

10.   Commitments and Contingencies

We are involved in various disputes arising in the ordinary course of business. Management does not believe the outcome of these disputes will have a material adverse effect on our consolidated financial position or consolidated results of operations.

11. Earnings per Share

Basic earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during the period by the weighted average number of shares of Class A common stock outstanding during the same period. Diluted earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during that period by the weighted average number of common shares outstanding assuming all potentially dilutive shares were issued.

We use the “if-converted” method to determine the potential dilutive effect of outstanding CW Units (and corresponding shares of outstanding Class B common stock), and the treasury stock method to determine the potential dilutive effect of unvested restricted stock units assuming that the proceeds will be used to purchase shares of Class A common stock.

11

The following table summarizes the basic and diluted earnings per share calculations:

Three Months Ended
March 31, 

    

2020

    

2019

Numerator:

 

  

 

  

Net income attributable to Cactus Inc.—basic

$

18,983

$

26,807

Net income attributable to non-controlling interest (1)

11,166

17,505

Net income attributable to Cactus Inc.—diluted (1)

$

30,149

$

44,312

Denominator:

 

  

 

  

Weighted average Class A shares outstanding—basic

 

47,270

 

38,719

Effect of dilutive shares (2)

28,125

36,527

Weighted average Class A shares outstanding—diluted (2)

75,395

75,246

Earnings per Class A share—basic

$

0.40

$

0.69

Earnings per Class A share—diluted (1) (2)

$

0.40

$

0.59

(1)Under the if-converted method for the three months ended March 31, 2020 and 2019, the numerator is adjusted in the calculation of diluted earnings per share to include $11.2 million and $17.5 million, respectively, attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 26% and 24%, respectively.
(2)Diluted earnings per share for the three months ended March 31, 2020 and 2019 includes 28.0 million and 36.3 million, respectively, weighted average shares of Class B common stock assuming conversion, plus the dilutive effect of restricted stock unit awards.

12. Subsequent Events

As a result of significant declines in sales activity, we notified 277 U.S. associates on March 31, 2020 that their position with the Company had been eliminated. Due to the fact that the outlook for our industry has continued to rapidly deteriorate, we reduced our U.S. workforce by an additional 212 associates in April.

12

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

Except as otherwise indicated or required by the context, all references in this Quarterly Report to the “Company,” “Cactus,” “we,” “us” and “our” refer to Cactus, Inc. (“Cactus Inc.”) and its consolidated subsidiaries, unless we state otherwise or the context otherwise requires. The following discussion and analysis of our financial condition and results of operations should be read in conjunction with the accompanying unaudited condensed consolidated financial statements and related notes. The following discussion contains “forward-looking statements” that reflect our plans, estimates, beliefs and expected performance. Our actual results may differ materially from those anticipated as discussed in these forward-looking statements as a result of a variety of risks and uncertainties, including those described above in “Cautionary Note Regarding Forward-Looking Statements” and included elsewhere in this Quarterly Report, all of which are difficult to predict. In light of these risks, uncertainties and assumptions, the forward-looking events discussed may not occur. We assume no obligation to update any of these forward-looking statements except as otherwise required by law.

Executive Summary

We design, manufacture, sell and rent a range of highly engineered wellhead and pressure control equipment. Our products are sold and rented principally for onshore unconventional oil and gas wells and are utilized during the drilling, completion and production phases of our customers’ wells. In addition, we provide field services for all of our products and rental items to assist with the installation, maintenance and handling of the wellhead and pressure control equipment.

We operate through service centers in the United States, which are strategically located in the key oil and gas producing regions, including the Permian, SCOOP/STACK, Marcellus, Utica, Eagle Ford, Bakken, among other active oil and gas regions in the United States, and in Eastern Australia. These service centers support our field services and provide equipment assembly and repair services. Our manufacturing and production facilities are located in Bossier City, Louisiana and Suzhou, China.

We operate in one business segment. Our revenues are derived from three sources: products, rentals, and field service and other. Product revenues are primarily derived from the sale of wellhead systems and production trees. Rental revenues are primarily derived from the rental and associated repair of equipment used for well control during the completion process as well as the rental of drilling tools. Field service and other revenues are primarily earned when we provide installation and other field services for both product sales and equipment rental. Additionally, other revenues are derived from providing repair and reconditioning services to customers that have previously installed our products on their wellsite. Items sold or rented generally have an associated service component. As a result, there is some level of correlation between field service and other revenues and revenues from product sales and rentals.

In the three months ended March 31, 2020, we derived 57% of total revenues from the sale of our products, 23% of total revenues from rental and 20% of total revenues from field service and other. In the three months ended March 31, 2019, we derived 55% of total revenues from the sale of our products, 24% of total revenues from rental and 21% of total revenues from field service and other. We have predominantly U.S. operations, with a small amount of sales being generated in Australia.

Market Factors

Demand for our products and services depends primarily upon the general level of activity in the oil and gas industry, including the number of drilling rigs in operation, the number of oil and gas wells being drilled, the depth and drilling conditions of these wells, the number of well completions, the level of well remediation activity, the volume of production and the corresponding capital spending by oil and natural gas companies. Oil and gas activity is in turn heavily influenced by, among other factors, oil and gas prices locally and worldwide, which have historically been volatile.

The key market factors impacting our product sales are the number of wells drilled and placed on production, as each well requires an individual wellhead assembly and, at some time after completion, the installation of an associated production tree. We measure our product sales activity levels against our competitors by the number of rigs that we are supporting on a monthly basis, as it is correlated to wells drilled. Each active drilling rig produces different levels of revenue based on the customer’s drilling plan, which includes factors such as the number of wells drilled per pad, the time taken to drill each well, the number and size of casing strings, the working pressure, material selection and the

13

complexity of the wellhead system chosen by the customer and the rate at which production trees are eventually deployed. All of these factors may be influenced by the oil and gas region in which our customer is operating. While these factors may lead to differing revenues per rig, we have historically been able to broadly forecast our product needs and anticipated revenue levels based on general trends in a given region and with a specific customer. Increases in horizontal wells drilled as a percentage of total wells drilled, the shift towards pad drilling, and an increase in the number of wells drilled per rig are all favorable trends that we believe enhance the demand for our products relative to the active rig count.

Our rental revenues are primarily dependent on the number of wells completed (i.e., hydraulically fractured), the number of wells on a well pad and the number of fracture stages per well. Well completion activity generally follows the level of drilling activity but can be delayed due to such factors as takeaway capacity, storage capacity and budget constraints.

Field service and other revenues are closely correlated to revenues from product sales and rentals, as items sold or rented almost always have an associated service component. Therefore, the market factors and trends of product sales and rental revenues similarly impact the associated levels of service and other revenues generated.

Recent Developments and Trends

In early 2020, a novel strain of coronavirus (also referred to as COVID-19) began spreading in the Hubei province in China. Although located in a separate province, our factory in Suzhou, China was closed for 10 days beginning in late January 2020 as a result of travel restrictions and other measures taken by the Chinese government in response to the outbreak of the coronavirus. Our Suzhou facility reopened on February 10, 2020 and returned to full capacity by the end of the first quarter of 2020. We are currently experiencing no issues with workforce or supply chain disruptions in China. In March 2020, as a result of the continued spread of the virus, the World Health Organization declared COVID-19 a pandemic resulting in countries taking urgent and aggressive action to stop the spread of the disease. These actions have included restrictions on travel (foreign or domestic) and stay-at-home orders. The combination of travel restrictions, school and business closures and stay-at-home orders worldwide has resulted in a severe decline in the demand for oil.

In early March 2020, as a result of the ongoing decrease in global oil demand resulting from the coronavirus pandemic, members of the Organization of Petroleum Exporting Countries (OPEC) and Russia considered extending their oil production cuts and agreeing to additional cuts. Negotiations were unsuccessful. Saudi Arabia then announced an immediate reduction in its oil export prices and a substantial increase in production over prior levels. Further, it was announced that previously agreed upon oil production cuts between Russia and OPEC members would expire on April 1, 2020. Oil prices declined sharply following the outcome of these failed negotiations. In mid-April 2020, an agreement was reached with oil-producing nations to make production cuts in an effort to stabilize oil prices. However, the growing concern regarding the limited availability of crude oil storage capacity and continued weakness in demand has placed extreme pressure on oil prices with West Texas Intermediate (WTI) prices trading at negative levels for a brief period in the month of April. Current WTI prices for June deliveries closed at $12.34 per barrel on April 28, 2020.

Overall, the significant decline in oil demand due to COVID-19 coupled with the instability of oil prices caused by geopolitical issues and production levels have resulted in our customers announcing significant reductions to their capital expenditure budgets for 2020. This is evidenced by the significant decline in U.S. onshore rig counts from the beginning of the year. At the end of 2019, the U.S. onshore rig count as reported by Baker Hughes was 781 rigs. For the three months ended March 31, 2020, the weekly average U.S. onshore rig count was 763 rigs compared to 1,021 rigs for the three months ended March 31, 2019. As of April 24, 2020, the U.S. onshore rig count was 448 and is expected to continue declining over the next several months.

While visibility regarding customer activity levels is low, we believe that the impact of lower oil prices and limited availability of storage capacity will result in severely reduced demand for our products and services. The duration and extent of the downturn in oil and gas activity is unknown at this time, and while management anticipates that the economic impact of lower oil prices will have a significantly negative effect on its results of operations, the degree to which these factors will impact our business remains uncertain.

We believe we are well positioned to successfully navigate the industry downturn. We are actively reviewing all opportunities to reduce costs and believe we will be able to manage our expenses and capital expenditures relative to market conditions. As a result, we implemented certain workforce, wage, and capital expenditure reductions beginning

14

in March 2020 which included the reduction of our total U.S. associate headcount by 277 associates (or approximately 30%). We continued to implement reductions in our workforce during April affecting 212 additional U.S. associates. The April headcount reductions are estimated to result in approximately $23 million of incremental annualized cost savings. The estimated cost savings include base salaries and wages, overtime, payroll taxes and benefits, but exclude estimated reductions in annual incentive bonuses associated with the Company’s financial performance. Our required capital expenditures have historically tended to be lower than most other oilfield service providers due to the asset-lite nature of our business model. As of March 31, 2020 we had no long-term debt and over $230 million of cash. We also believe that the operating environment following the industry downturn may prove more favorable for companies that are financially well positioned.

Tariffs

On March 26, 2020, the U.S. Trade Representative (‘‘USTR’’) announced their determination to grant certain exclusion requests related to tariffs on Chinese imports under Section 301 of the Trade Act of 1974 (“Section 301”). Not all of our products with Section 301 tariffs fall under this exclusion. The product exclusions apply retroactively as of September 24, 2018 until August 7, 2020 on covered products that were exported from China to the United States. The tariff rate on covered products was 10% beginning in September 2018 and raised to 25% in May 2019. Going forward, we will not be required to pay a tariff on covered products until at least August 7, 2020. We will continue to monitor the situation for an extension of this tariff suspension beyond the August 2020 deadline. Substantially all of the products that we import through our Chinese supply chain have been subject to Section 301 tariffs.

Consolidated Results of Operations

Three Months Ended March 31, 2020 Compared to Three Months Ended March 31, 2019

The following table presents summary consolidated operating results for the periods indicated:

Three Months Ended

 

March 31, 

 

    

2020

    

2019

    

$ Change

    

% Change

(in thousands)

Revenues

 

  

 

  

 

  

 

  

Product revenue

$

87,031

$

86,640

$

391

 

0.5

%

Rental revenue

 

36,163

 

38,497

 

(2,334)

 

(6.1)

Field service and other revenue

 

30,945

 

33,738

 

(2,793)

 

(8.3)

Total revenues

 

154,139

 

158,875

 

(4,736)

 

(3.0)

Costs and expenses

Cost of product revenue

 

56,135

 

53,018

 

3,117

 

5.9

Cost of rental revenue

 

19,339

 

17,791

 

1,548

 

8.7

Cost of field service and other revenue

 

23,811

 

26,906

 

(3,095)

 

(11.5)

Selling, general and administrative expenses

 

13,662

 

12,668

 

994

 

7.8

Severance expenses

1,007

1,007

nm

Total costs and expenses

 

113,954

 

110,383

 

3,571

 

3.2

Income from operations

 

40,185

 

48,492

 

(8,307)

 

(17.1)

Interest income, net

 

410

 

23

 

387

 

nm

Other expense, net

 

 

(1,042)

 

1,042

 

nm

Income before income taxes

 

40,595

 

47,473

 

(6,878)

 

(14.5)

Income tax expense (benefit)

 

7,497

 

(973)

 

8,470

 

nm

Net income

$

33,098

$

48,446

$

(15,348)

 

(31.7)

nm = not meaningful

15

Revenues

Product revenue for the three months ended March 31, 2020 was $87.0 million, reflecting a moderate increase of $0.4 million from $86.6 million for the three months ended March 31, 2019. The increase was primarily attributable to product mix, greater drilling efficiencies and increased market share offset by the lower rig count year-over-year. Market share is calculated as the number of rigs followed by Cactus divided by the Baker Hughes U.S. onshore rig count quarterly average. The term “rigs followed” represents the approximate number of active U.S. onshore drilling rigs to which we were the primary provider of wellhead products and corresponding services during drilling. Additionally, the Company generated greater revenue from its business in Australia compared to the three months ended March 31, 2019.

Rental revenue for the three months ended March 31, 2020 was $36.2 million, a decrease of $2.3 million, or 6%, from $38.5 million for the three months ended March 31, 2019. The decrease was primarily attributable to lower completion activity from our customers and increased competition.

Field service and other revenue for the three months ended March 31, 2020 was $30.9 million, a decrease of $2.8 million, or 8%, from $33.7 million for the three months ended March 31, 2019. The decrease was primarily attributable to decreased customer activity, as rig counts declined in the first quarter of 2020 along with completion activity.

Costs and expenses

Cost of product revenue for the three months ended March 31, 2020 was $56.1 million, an increase of $3.1 million, or 6%, from $53.0 million for the three months ended March 31, 2019. The increase was largely attributable to an increase in product sales volume, tariffs and reserves for inventory obsolescence.

Cost of rental revenue for the three months ended March 31, 2020 was $19.3 million, an increase of $1.5 million, or 9%, from $17.8 million for the three months ended March 31, 2019. The increase was largely attributable to higher depreciation expense on a larger rental fleet as well as increased scrap and rework expenses during the current period.

Cost of field service and other revenue for the three months ended March 31, 2020 was $23.8 million, a decrease of $3.1 million, or 12%, from $26.9 million for the three months ended March 31, 2019. The decrease was attributable to lower payroll costs associated with fewer field personnel.

Selling, general and administrative expense for the three months ended March 31, 2020 was $13.7 million, an increase of $1.0 million, or 8%, from $12.7 million for the three months ended March 31, 2019. The increase was attributable to an increase in our credit loss reserve, higher stock-based compensation expense and greater professional fees. These increases were partially offset by a reduction in annual incentive bonus accruals.

Severance expense for the three months ended March 31, 2020 of $1.0 million was due to severance benefits associated with headcount reductions of 277 U.S. associates announced before the end of the quarter.

In addition to headcount reductions, we also implemented company-wide salary reductions in March 2020 as well as other cost savings, which are estimated to result in approximately $35 million of annualized cost savings, $5 million of which are associated with selling, general and administrative expenses. These cost savings estimates include items such as overtime reductions, benefits and payroll taxes. These estimates are, however, exclusive of additional potential cost saving measures to be taken by the Company, such as a reduction in discretionary payments to associates related to annual incentive bonuses associated with the Company’s financial performance, which totaled approximately $8 million in 2019, $4 million of which was categorized as selling, general and administrative expenses.

Interest income, net. Interest income for the three months ended March 31, 2020 was $0.4 million, compared to less than $0.1 million for the three months ended March 31, 2019. The change is primarily due to higher interest income due to the Company’s higher cash balance.

Other expense, net. Other expense for the three months ended March 31, 2019 of $1.0 million related to offering expenses associated with a secondary offering in March 2019 of our Class A common stock. There was no such expense in the first quarter of 2020.

16

Income tax expense (benefit). Cactus Inc. is subject to U.S. federal and state income taxes on its share of income of Cactus LLC. Income tax expense for the three months ended March 31, 2020 was $7.5 million (18.5% effective tax rate) compared to income tax benefit of $1.0 million for the three months ended March 31, 2019. Our effective tax rate for the quarter is lower than the federal statutory rate of 21% primarily due to the fact that Cactus Inc. is only subject to federal and state income tax on its share of income from Cactus LLC. Income allocated to the non-controlling interest is not subject to U.S. federal or state tax.

Liquidity and Capital Resources

At March 31, 2020 we had $230.2 million of cash and cash equivalents. At March 31, 2020, we had no borrowings outstanding under our ABL Credit Facility and we had $75.0 million of available borrowing capacity. See Note 6 of the Notes to Condensed Consolidated Financial Statements. We were in compliance with the covenants of the ABL Credit Facility as of March 31, 2020.

Our primary sources of liquidity and capital resources are cash on hand, cash flows generated by operating activities and, if necessary, borrowings under our ABL Credit Facility. Depending upon market conditions and other factors, we may also have the ability to issue additional equity and debt if needed.

Our ability to satisfy our liquidity requirements, including cash distributions to the holders of units representing limited liability company interests in Cactus LLC (“CW Units”) to fund their respective income tax liabilities relating to their share of the income of Cactus LLC and to fund liabilities related to the tax receivable agreement (the “TRA”), that we entered into with certain current or past direct and indirect owners of Cactus LLC (the “TRA Holders”), depends on our future operating performance, which is affected by prevailing economic conditions, market conditions in the E&P industry, availability and cost of raw materials, and financial, business and other factors, many of which are beyond our control.

We currently estimate our net capital expenditures for the year ending December 31, 2020 will range from $20 million to $30 million mostly related to rental fleet investments. The majority of our net capital expenditures are expected to be weighted toward the first half of the 2020 fiscal year. We continuously evaluate our capital expenditures, and the amount we ultimately spend will depend on a number of factors, including, among other things, demand for rental assets, available capacity in existing locations, prevailing economic conditions, market conditions in the E&P industry, customers’ forecasts, demand and volatility and company initiatives.

We believe that our existing cash on hand, cash generated from operations and available borrowings under our ABL Credit Facility will be sufficient for at least the next 12 months to meet working capital requirements, anticipated capital expenditures, expected TRA liability payments, anticipated tax liabilities and dividends to holders of our Class A common stock. In addition, we believe we will be able to fund pro rata cash distributions to holders of CW Units (other than Cactus Inc.) resulting from the requirement to make TRA liability payments, tax liabilities and dividends from Cactus Inc.

Cash Flows

Three Months Ended March 31, 2020 Compared to Three Months Ended March 31, 2019

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

Three Months Ended March 31, 

    

2020

    

2019

(in thousands)

Net cash provided by operating activities

$

45,161

$

34,239

Net cash used in investing activities

 

(8,338)

 

(13,847)

Net cash used in financing activities

 

(9,604)

 

(3,555)

Net cash provided by operating activities was $45.2 million and $34.2 million for the three months ended March 31, 2020 and 2019, respectively. Operating cash flows for 2020 increased from 2019 primarily due to a decrease in net working capital use.

17

Net cash used in investing activities was $8.3 million and $13.8 million for the three months ended March 31, 2020 and 2019, respectively. The decrease was primarily due to lower capital expenditures associated with our rental fleet in 2020 due to reductions in our capital expenditures as a result of the current industry environment.

Net cash used in financing activities was $9.6 million and $3.6 million for the three months ended March 31, 2020 and 2019, respectively. The increase was attributable to $4.3 million in dividend payments to holders of Class A common stock in 2020 and an increase of $2.0 million in Cactus LLC member distributions.

Off-Balance Sheet Arrangements

We do not have off-balance sheet arrangements.

Item 3.   Quantitative and Qualitative Disclosures About Market Risk.

For quantitative and qualitative disclosures about market risk, see Part II, Item 7A., “Quantitative and Qualitative Disclosures about Market Risk,” in our 2019 Annual Report. Our exposure to market risk has not changed materially since December 31, 2019.

Item 4.   Controls and Procedures.

Evaluation of Disclosure Controls and Procedures

In accordance with Exchange Act Rules 13a-15 and 15d-15, we have evaluated, under the supervision and with the participation of our management, including our principal executive officer and principal financial officer, the effectiveness of the design and operation of our disclosure controls and procedures (as defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act) as of the period covered by this report. Our disclosure controls and procedures are designed to provide reasonable assurance that the information required to be disclosed by us in reports that we file or submit under the Exchange Act is accumulated and communicated to our management, including our principal executive officer and principal financial officer, as appropriate, to allow timely decisions regarding required disclosure and is recorded, processed, summarized and reported within the time periods specified in the rules and forms of the SEC. Based upon that evaluation, our principal executive officer and principal financial officer concluded that our disclosure controls and procedures were effective as of March 31, 2020 at the reasonable assurance level.

Changes in Internal Control over Financial Reporting

There were no changes in our internal control over financial reporting that occurred during the first quarter of 2020 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

PART II - OTHER INFORMATION

Item 1. Legal Proceedings.

We are party to lawsuits arising in the ordinary course of our business. We cannot predict the outcome of any such lawsuits with certainty, but management believes it is unlikely that pending or threatened legal matters will have a material adverse impact on our financial condition.

Due to the nature of our business, we are, from time to time, involved in other routine litigation or subject to disputes or claims related to our business activities, including workers’ compensation claims and employment related disputes. In the opinion of our management, none of these, whether pending litigation, disputes or claims against us, if decided adversely, will have a material adverse effect on our results of operations, financial condition or cash flows.

Item 1A.   Risk Factors.

In addition to the information set forth in this Quarterly Report, you should carefully consider the risk factors and other cautionary statements described under the heading “Item 1A. Risk Factors” included in our 2019 Annual Report and the risk factors and other cautionary statements contained in our other filings with the Securities and Exchange Commission, which could materially affect our business, results of operations, financial condition or cash flows.

18

Additional risks and uncertainties not currently known to us or that we currently deem to be immaterial also may materially adversely affect our business, results of operations, financial condition or cash flows. There have been no material changes in our risk factors from those described in our 2019 Annual Report or our other Securities and Exchange Commission filings except that we are updating the risk factor entitled “Demand for our products and services depends on oil and gas industry activity and customer expenditure levels, which are directly affected by trends in the demand for and price of crude oil and natural gas and availability of capital” as set forth below:

Demand for our products and services depends on oil and gas industry activity and customer expenditure levels, which are directly affected by trends in the demand for and price of crude oil and natural gas and availability of capital.

Demand for our products and services depends primarily upon the general level of activity in the oil and gas industry, including the number of drilling rigs in operation, the number of oil and gas wells being drilled, the depth and drilling conditions of these wells, the volume of production, the number of well completions and the level of well remediation activity, and the corresponding capital spending by oil and gas companies. Oil and gas activity is in turn heavily influenced by, among other factors, current and anticipated oil and natural gas prices locally and worldwide, which have historically been volatile.

Declines, as well as anticipated declines, in oil and gas prices could negatively affect the level of these activities and capital spending, which could adversely affect demand for our products and services and, in certain instances, result in the cancellation, modification or rescheduling of existing and expected orders and the ability of our customers to pay us for our products and services. These factors could have an adverse effect on our results of operations, financial condition and cash flows.

Factors affecting the prices of oil and natural gas include, but are not limited to, the following:

demand for hydrocarbons, which is affected by worldwide population growth, economic growth rates and general economic and business conditions;
available excess production capacity within the Organization of Petroleum Exporting Countries (“OPEC”) and the level of oil and gas production by non-OPEC countries;
the continued development of shale plays which may influence worldwide supply;
transportation differentials associated with reduced capacity in and out of the storage hub in Cushing, Oklahoma;
costs of exploring for, producing and delivering oil and natural gas;
political and economic uncertainty and sociopolitical unrest;
oil refining activity and shifts in end-customer preferences toward fuel efficiency and the use of natural gas;
conservation measures and technological advances affecting energy consumption;
potential acceleration of the commercial development of alternative energy sources (such as wind, solar, geothermal, tidal, fuel cells and biofuels);
access to capital and credit markets, which may affect our customers’ activity levels and spending for our products and services;
changes in laws and regulations related to hydraulic fracturing activities;
changes in environmental laws and regulations (including relating to the use of coal in power plants); and

19

natural disasters.

The oil and gas industry is cyclical and has historically experienced periodic downturns, which have been characterized by diminished demand for our products and services and downward pressure on the prices we charge. The effects of the COVID-19 pandemic and actions taken by governments worldwide to stop the spread of the disease have adversely affected the demand for oil and gas, as well as for our products and services. The collapse in the demand for oil caused by this global health and economic crisis, coupled with oversupply of oil and limited availability of storage capacity could have a material adverse impact on the demand for our products and services which in turn would have a material adverse impact on our financial condition, results of operations and cash flows. The duration and extent of the downturn in oil and gas activity is unknown at this time and the full impact is not yet known and while management anticipates that the industry and economic impact of lower oil prices will have a negative effect on its results of operations, the degree to which these factors will impact our business remains uncertain.

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

Issuer Purchases of Equity Securities

The following sets forth information with respect to our repurchase of Class A common stock during the three months ended March 31, 2020 (in whole shares).

Period

Total number of shares purchased (1)

Average price paid per share (2)

January 1-31, 2020

$

February 1-29, 2020

39,779

28.79

March 1-31, 2020

16,217

13.00

Total

55,996

$

24.22

(1)Consists of shares of Class A common stock repurchased from employees to satisfy tax withholding obligations related to restricted stock units that vested during the period.
(2)Average price paid for Class A common stock purchased from employees to satisfy tax withholding obligations related to restricted stock units that vested during the period.

20

Item 6.   Exhibits.

The following exhibits are required by Item 601 of Regulation S-K and are filed as part of this report.

Exhibit No.

    

Description

3.1

Amended and Restated Certificate of Incorporation of Cactus, Inc., effective February 12, 2018 (incorporated by reference to Exhibit 3.1 to the Registrant’s Form 8-K filed with the Commission on February 12, 2018)

3.2*

Amended and Restated Bylaws of Cactus, Inc., effective as of January 28, 2020

10.1

Form of Performance Stock Unit Agreement (three-year vesting) under the Cactus, Inc. Long Term Incentive Plan (incorporated by reference to Exhibit 10.1 to the Registrant’s Form 8-K filed with the Commission on March 17, 2020)

10.2

Form of Performance Stock Unit Agreement (two and three-year vesting) under the Cactus, Inc. Long Term Incentive Plan (incorporated by reference to Exhibit 10.2 to the Registrant’s Form 8-K filed with the Commission on March 17, 2020)

31.1*

CEO Certification Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

31.2*

CFO Certification Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

32.1**

CEO Certification Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

32.2**

CFO Certification Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

101.INS*

Inline XBRL Instance Document – the instance document does not appear in the Interactive Data File because XBRL tags are embedded within the Inline XBRL document

101.SCH*

Inline XBRL Taxonomy Extension Schema Document

101.CAL*

Inline XBRL Taxonomy Calculation Linkbase Document

101.LAB*

Inline XBRL Taxonomy Label Linkbase Document

101.PRE*

Inline XBRL Taxonomy Presentation Linkbase Document

101.DEF*

Inline XBRL Taxonomy Definition Document

104

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

*    Filed herewith.

** Furnished herewith.

Management contract or compensatory plan or arrangement.

21

SIGNATURES

Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.

Cactus, Inc.

 

 

April 30, 2020

By:

/s/ Scott Bender

Date

Scott Bender

President, Chief Executive Officer and Director

(Principal Executive Officer)

April 30, 2020

By:

/s/ Stephen Tadlock

Date

Stephen Tadlock

Vice President, Chief Financial Officer and Treasurer

(Principal Financial Officer)

22

EX-3.2 2 whd-20200331xex3d2.htm EX-3.2 Exhibit_3_2

Exhibit 3.2

AMENDED AND RESTATED BYLAWS OF

CACTUS, INC.

Incorporated under the Laws of the State of Delaware

Effective as of January 28, 2020

Article I

OFFICES AND RECORDS

Section 1.1 Registered Office. The registered office of Cactus, Inc. (the “Corporation”) in the State of Delaware shall be as set forth in the Amended and Restated Certificate of Incorporation of the Corporation, as it may be amended, restated, supplemented or otherwise modified from time to time (the “Certificate of Incorporation”), and the name of the Corporation’s registered agent at such address is as set forth in the Certificate of Incorporation. The registered office and registered agent of the Corporation may be changed from time to time by the board of directors of the Corporation (the “Board”) in the manner provided by applicable law.

Section 1.2 Other Offices. The Corporation may have such other offices, either within or without the State of Delaware, as the Board may designate or as the business of the Corporation may from time to time require.

Section 1.3 Books and Records. The books and records of the Corporation may be kept outside the State of Delaware at such place or places as may from time to time be designated by the Board.

Article II

STOCKHOLDERS

Section 2.1 Annual Meetings. If required by applicable law, an annual meeting of the stockholders of the Corporation shall be held at such date, time and place, if any, either within or without the State of Delaware, and time as may be fixed by resolution of the Board. Any other proper business may be transacted at the annual meeting. The Board may, at any time prior to the holding of an annual meeting of stockholders, and for any reason, postpone, reschedule or cancel any annual meeting of stockholders previously scheduled by the Board.

Section 2.2 Special Meetings. Except as otherwise required by law and subject to the rights of holders of any series of preferred stock of the Corporation (the “Preferred Stock”), special meetings of stockholders of the Corporation may only be called in the manner provided in the Certificate of Incorporation. The Board may, at any time prior to the holding of a special meeting of stockholders, and for any reason, postpone, reschedule or cancel any special meeting of the stockholders previously scheduled by the Board.

Section 2.3 Record Date.

(A) In order that the Corporation may determine the stockholders entitled to notice of any meeting of stockholders or any adjournment or recess thereof, the Board may fix a record date, which record date shall not precede the date upon which the resolution fixing the record date is adopted by the Board, and which record date shall, unless otherwise required by applicable law, not be more than sixty (60) nor less than ten (10) days before the date of such meeting. If the Board so fixes a date, such date shall also be the record date for determining the stockholders entitled to vote at such meeting unless the Board determines, at the time it fixes such record date, that a later date on or before the date of the meeting shall be the date for making such determination. If no record date is fixed by the Board, the record date for determining stockholders entitled to notice of or to vote at a meeting of stockholders shall be at the close of business on the day next preceding the day on which notice is given, or, if notice is waived, at the close of business on the day next preceding the day on which the meeting is held. A determination of stockholders of record entitled to notice of or to vote at a meeting of stockholders shall apply to any adjournment or recess of the meeting; provided, however, that the Board may fix a new record date for determination of stockholders entitled to vote at the adjourned or recessed meeting, and in such case shall also fix as the record date for stockholders entitled to notice of such adjourned or recessed meeting the same date as that fixed for determination of stockholders entitled to vote in accordance herewith at the adjourned or recessed meeting.

(B) In order that the Corporation may determine the stockholders entitled to receive payment of any dividend or other distribution or allotment of any rights, or entitled to exercise any rights in respect of any change, conversion or exchange of stock or for the purpose of any other lawful action, the Board may fix a record date, which record date shall not precede the date upon which the resolution fixing the record date is adopted, and which record date shall not be more than sixty (60) days prior to such action. If no such record date is fixed, the record date for determining stockholders for any such purpose shall be at the close of business on the day on which the Board adopts the resolution relating thereto.

Section 2.4 Stockholder List. The officer who has charge of the stock ledger shall prepare and make, at least ten (10) days before every meeting of stockholders, a complete list of stockholders entitled to vote at any meeting of stockholders (provided, however, if the record date for determining the stockholders entitled to vote is less than ten (10) days before the date of the meeting, the list shall reflect the stockholders entitled to vote as of the 10th day before the meeting date), arranged in alphabetical order for each class of stock and showing the address of each such stockholder and the number of shares registered in the name of such stockholder. Such list shall be open to the examination of any stockholder, for any purpose germane to the meeting, during ordinary business hours, for a period of at least ten (10) days prior to the meeting, either on a reasonably accessible electronic network (provided that the information required to gain access to the list is provided with the notice of the meeting) or during ordinary business hours at the principal place of business of the Corporation. The stock list shall also be produced and kept at the time and place of the meeting during the whole time thereof, and may be inspected by any stockholder who is present. If the meeting is to be held solely by means of remote communication, then the list shall also be open to the examination of any stockholder during the whole time of the meeting on a reasonably accessible electronic network, and the information required to access such list shall be provided with the notice of the meeting. Except as otherwise provided by applicable law, the stock

ledger of the Corporation shall be the only evidence as to who are the stockholders entitled by this section to examine the list required by this section or to vote in person or by proxy at any meeting of the stockholders.

Section 2.5 Place of Meeting. The Board, the Chairman of the Board or the Chief Executive Officer, as the case may be, may designate the place of meeting for any annual meeting or for any special meeting of the stockholders. If no designation is so made, the place of meeting shall be the principal executive offices of the Corporation. The Board, acting in its sole discretion, may establish guidelines and procedures in accordance with applicable provisions of the Delaware General Corporation Law (the “DGCL”) and any other applicable law for the participation by stockholders and proxyholders in a meeting of stockholders by means of remote communications, and may determine that any meeting of stockholders will not be held at any place but will be held solely by means of remote communication. Stockholders and proxyholders complying with such procedures and guidelines and otherwise entitled to vote at a meeting of stockholders shall be deemed present in person and entitled to vote at a meeting of stockholders, whether such meeting is to be held at a designated place or solely by means of remote communication.

Section 2.6 Notice of Meeting. Written or printed notice, stating the place, if any, day and hour of the meeting and the purpose or purposes for which the meeting is called, shall be given not less than ten (10) days nor more than sixty (60) days before the date of the meeting, in a manner pursuant to Section 7.7 hereof, to each stockholder of record entitled to vote at such meeting. The notice shall specify (i) the record date for determining the stockholders entitled to vote at the meeting (if such date is different from the record date for stockholders entitled to notice of the meeting), (ii) the place, if any, date and time of such meeting, (iii) the means of remote communications, if any, by which stockholders and proxyholders may be deemed to be present in person and vote at such meeting, (iv) in the case of a special meeting, the purpose or purposes for which such meeting is called and (v) such other information as may be required by applicable law or as may be deemed appropriate by the Board, the Chairman of the Board or the Chief Executive Officer or the Secretary of the Corporation. If the stockholder list referred to in Section 2.4 of these Bylaws is made accessible on an electronic network, the notice of meeting must indicate how the stockholder list can be accessed. If the meeting of stockholders is to be held solely by means of electronic communications, the notice of meeting must provide the information required to access such stockholder list during the meeting. If mailed, such notice shall be deemed to be delivered when deposited in the United States mail with postage thereon prepaid, addressed to the stockholder at his address as it appears on the stock transfer books of the Corporation. The Corporation may provide stockholders with notice of a meeting by electronic transmission provided such stockholders have consented to receiving electronic notice in accordance with the DGCL. Such further notice shall be given as may be required by applicable law. Only such business shall be conducted at a special meeting of stockholders as shall have been brought before the meeting pursuant to the notice of meeting. Meetings may be held without notice if all stockholders entitled to vote are present, or if notice is waived by those not present in accordance with Section 7.4 of these Bylaws.

Section 2.7 Quorum and Adjournment of Meetings.

(A) Except as otherwise provided by applicable law or by the Certificate of Incorporation, the holders of a majority of the outstanding shares of stock of the Corporation

entitled to vote at the meeting (the “Voting Stock”), represented in person or by proxy, shall constitute a quorum at a meeting of stockholders, except that when specified business is to be voted on by a class or series of stock voting as a class, the holders of a majority of the shares of such class or series shall constitute a quorum of such class or series for the transaction of such business. For the avoidance of doubt, abstentions and broker non-votes shall be treated as present for purposes of determining the presence or absence of a quorum. The chairman of the meeting or a majority of the shares so represented may adjourn or recess the meeting at any time and for any reason, whether or not there is such a quorum. The stockholders present at a duly called meeting at which a quorum is present may continue to transact business until the meeting is adjourned or recessed, notwithstanding the withdrawal of enough stockholders to leave less than a quorum.

(B) Any meeting of stockholders, annual or special, may adjourn or recess from time to time to reconvene at the same or some other place, and notice need not be given of any such adjourned or recessed meeting if the time and place thereof are announced at the meeting at which the adjournment or recess is taken; provided, however, that if the adjournment or recess is for more than thirty (30) days, a notice of the adjourned meeting shall be given to each stockholder of record entitled to vote at the meeting. At the adjourned or recessed meeting, the Corporation may transact any business that might have been transacted at the original meeting.

Section 2.8 Proxies. At all meetings of stockholders, a stockholder may vote by proxy executed in writing (or in such other manner prescribed by the DGCL) by the stockholder or by his duly authorized attorney-in-fact. Any copy, facsimile transmission or other reliable reproduction of the writing or transmission created pursuant to this section may be substituted or used in lieu of the original writing or transmission for any and all purposes for which the original writing or transmission could be used, provided that such copy, facsimile transmission or other reproduction shall be a complete reproduction of the entire original writing or transmission. No proxy may be voted or acted upon after the expiration of three (3) years from the date of such proxy, unless such proxy provides for a longer period. Every proxy is revocable at the pleasure of the stockholder executing it unless the proxy states that it is irrevocable and applicable law makes it irrevocable. A stockholder may revoke any proxy that is not irrevocable by attending the meeting and voting in person or by filing an instrument in writing revoking the proxy or by filing another duly executed proxy bearing a later date with the Secretary of the Corporation.

Section 2.9 Notice of Stockholder Business and Nominations.

(A) Annual Meetings of Stockholders.

(1) Nominations of persons for election to the Board and the proposal of other business to be considered by the stockholders at an annual meeting of stockholders may be made only (a) pursuant to the Corporation’s notice of meeting (or any supplement thereto), (b) by or at the direction of the Board or any committee thereof or (c) subject to the then-applicable terms of the Stockholders’ Agreement (as defined in the Certificate of Incorporation) (with respect to nominations of persons for election to the Board only), by any stockholder of the Corporation who (i) was a stockholder of record at the time of giving of notice provided for in these Bylaws and at the time of the annual meeting, (ii) is entitled to vote at the meeting and (iii) complies with the notice procedures set forth in these Bylaws and

applicable law as to such business or nomination; Section 2.9(A)(2) of these Bylaws shall be the exclusive means for a stockholder to make nominations or submit other business (other than matters properly brought under Rule 14a-8 under the Securities Exchange Act of 1934, as amended (the “Exchange Act”), and included in the Corporation’s notice of meeting) before an annual meeting of the stockholders.

(2) For any nominations or any other business to be properly brought before an annual meeting by a stockholder pursuant to Section 2.9(A)(2) of these Bylaws, the stockholder must have given timely notice thereof in writing to the Secretary of the Corporation and such other business must otherwise be a proper matter for stockholder action under the DGCL. To be timely, a stockholder’s notice shall be delivered to the Secretary of the Corporation at the principal executive offices of the Corporation not earlier than the close of business on the 120th day and not later than the close of business on the 90th day prior to the first anniversary of the preceding year’s annual meeting (which anniversary, in the case of the first annual meeting of stockholders following the close of the Corporation’s initial public offering, shall be deemed to be April 10, 2018; provided, however, that in the event that the date of the annual meeting (other than the first annual meeting following the close of the Corporation’s initial public offering) is scheduled for a date that is more than thirty (30) days before or more than sixty (60) days after such anniversary date, notice by the stockholder to be timely must be so delivered not earlier than the close of business on the 120th day prior to the date of such annual meeting and not later than the close of business on the later of the 90th day prior to such annual meeting or, if the first public announcement of the date of such annual meeting is less than one hundred (100) days prior to the date of such annual meeting, the 10th day following the day on which public announcement of the date of such meeting is first made by the Corporation. In no event shall any adjournment, recess, cancellation, rescheduling or postponement of an annual meeting or any announcement thereof commence a new time period for the giving of a stockholder’s notice as described above. To be in proper form, a stockholder’s notice (whether given pursuant to this Section 2.9(A)(2) or Section 2.9(B)) to the Secretary of the Corporation must:

(a) set forth, as to each Proposing Person (as defined below), (i) the name and address of such Proposing Person (including, if applicable, the name and address that appear on the Corporation’s books and records) (ii) (A) the class or series, if any, and number of shares of the Corporation that are, directly or indirectly, owned beneficially or of record (within the meaning of Rule 13d-3 under the Exchange Act) by such Proposing Person (except that such Proposing Person shall be deemed to beneficially own any shares of any class or series of capital stock of the corporation as to which such Proposing Person has a right to acquire beneficial ownership at any time in the future), any option, warrant, convertible security, stock appreciation right, swap or similar right with an exercise or conversion privilege or a settlement payment or mechanism at a price related to any class or series of shares of the Corporation or with a value derived in whole or in part from the value or volatility of any class or series of shares of the

Corporation, any “call equivalent position” or “put equivalent position” (as such terms are defined in Rule 16a-1 under the Exchange Act) (including any security or instrument that would not otherwise constitute a derivative security for purposes of such definitions as a result of any feature that would make any conversion, exercise or similar right or privilege of such security or instrument becoming determinable only at some future date or upon the happening of a future occurrence, in which case the determination of the amount of securities into which such security or instrument would be convertible or exercisable shall be made assuming that such security or instrument is immediately convertible or exercisable at the time of such determination) or any other derivative or synthetic arrangement having characteristics of a long position in, or a short position with respect to, any class or series of shares of capital stock of the Corporation, whether or not such instrument or right shall be subject to settlement in the underlying class or series of stock of the Corporation or otherwise (a “Derivative Instrument”), directly or indirectly, owned beneficially by such Proposing Person and any other direct or indirect opportunity to profit or share in any profit derived from any increase or decrease in the value of shares of the Corporation, (C) a description of any proxy, contract, arrangement, understanding or relationship pursuant to which such Proposing Person has a right to vote any shares of any security of the Corporation, (D) any short interest in any security of the Corporation (for purposes of these Bylaws a person shall be deemed to have a “short interest” in a security if such person directly or indirectly, through any contract, arrangement, understanding, relationship or otherwise, has the opportunity to profit or share in any profit derived from any decrease in the value of the subject security), (E) any rights to dividends on the shares of the Corporation owned beneficially by such Proposing Person that are separated or separable from the underlying shares of the Corporation, (F) any proportionate interest in shares of the Corporation or Derivative Instruments held, directly or indirectly, by a general or limited partnership, limited liability company or similar entity in which such Proposing Person is a general partner or, directly or indirectly, beneficially owns an interest in a general partner, is a manager, is a managing member or, directly or indirectly, beneficially owns an interest in a manager or managing member of a limited liability company or similar entity and (G) any performance-related fees (other than an asset-based fee) that such Proposing Person is entitled to based on any increase or decrease in the value of shares of the Corporation or Derivative Instruments, if any, including without limitation any such interests held by members of such Proposing Person’s immediate family sharing the same household, (iii) any other information relating to such Proposing Person that would be required to be disclosed in a proxy statement or other filing required to be made in connection with solicitations of proxies or consents for, as applicable, the proposal or for the election of directors in a contested election pursuant to Section 14 of the Exchange Act and the rules and regulations promulgated thereunder, (iv) a representation that the Proposing Person is a holder of

record of stock of the Corporation entitled to vote at such meeting, will continue to be a holder of record of stock entitled to vote at such meeting through the date of the meeting and intends to appear in person or by proxy at the meeting to bring such nomination or other business before the meeting, (v) a description of any material interest in such business of the Proposing Person on whose behalf the proposal is made, (vi) a summary of any material discussion regarding the business proposed to be brought before the meeting between such Proposing Person, on the one hand, and any other record or beneficial holder of the shares of any class or series of the Corporation (including their names), on the other hand, and (vii) a representation as to whether such Proposing Person intends or is part of a group that intends to (x) deliver a proxy statement or form of proxy to holders of at least the percentage of the voting power of the Corporation’s outstanding stock required to approve or adopt the proposal or to elect each such nominee or (y) otherwise to solicit proxies from stockholders in support of such proposal or nomination. The information required under this Section 2.9(A)(2) shall be supplemented and updated by such Proposing Person as described under Section 2.9(C)(6);

(b) if the notice relates to any business other than a nomination of a director or directors that the stockholder proposes to bring before the meeting, set forth (i) a reasonably brief description of the business desired to be brought before the meeting, the reasons for conducting such business at the meeting and any material interest of each Proposing Person in such business, (ii) the text of the proposal or business (including the text of any resolutions proposed for consideration) and (iii) a complete and accurate description of all agreements, arrangements and understandings (x) between or among any of the Proposing Persons or (y) between or among any Proposing Person and any other person, persons or entity (including their names) in connection with the proposal of such business by such stockholder;

(c) set forth, as to each person, if any, whom the stockholder proposes to nominate for election or reelection to the Board (i) the name, age, business address and residence address of such person, (ii) the principal occupation or employment of such person (presently and for the past five (5) years), (iii) the class or series and number of shares of capital stock of the Corporation which are owned beneficially and of record by such person, (v) all information relating to such person that would be required to be disclosed in a proxy statement or other filings required to be made in connection with solicitations of proxies for election of directors in a contested election pursuant to Section 14 of the Exchange Act and the rules and regulations promulgated thereunder (including such person’s written consent to being named in the proxy statement as a nominee and to serving as a director if elected), (vi) a complete and accurate description of all direct and indirect compensation and other material monetary agreements, arrangements and understandings during the past three (3) years, and any

other material relationships, between or among such stockholder and beneficial owner, if any, and their respective affiliates and associates, or others acting in concert therewith, on the one hand, and each proposed nominee, and his respective affiliates and associates, or others acting in concert therewith, on the other hand, including, without limitation all information that would be required to be disclosed pursuant to Rule 404 promulgated under Regulation S-K if the stockholder making the nomination and any beneficial owner on whose behalf the nomination is made, if any, or any affiliate or associate thereof or person acting in concert therewith, were the “registrant” for purposes of such rule and the nominee were a director or executive officer of such registrant and (vii) a notarized letter signed by such person stating his or her acceptance of the nomination by the Proposing Person, stating his or her intention to serve as a director for the full term if elected, and consenting to be named as a nominee for director in any proxy statement relating to such person’s election;

(d) with respect to each nominee for election or reelection to the Board, include a completed and signed questionnaire, representation and agreement required by Section 2.9(A)(4) of these Bylaws; and

(e) set forth, as the Corporation may require any proposed nominee to furnish, any such additional information as may reasonably be required by the Corporation to determine the eligibility of such proposed nominee to serve as an independent director of the Corporation or that could be material to a reasonable stockholder’s understanding of the independence, or lack thereof, of such nominee.

(3) Notwithstanding anything in the second sentence of Section 2.9(A)(2) of these Bylaws to the contrary, in the event that the number of directors to be elected to the Board is increased and there is no public announcement by the Corporation naming all of the nominees for director or specifying the size of the increased Board at least one hundred (100) days prior to the first anniversary of the preceding year’s annual meeting, a stockholder’s notice required by these Bylaws shall also be considered timely, but only with respect to nominees for any new positions created by such increase, if it shall be delivered to the Secretary of the Corporation at the principal executive offices of the Corporation not later than the close of business on the 10th day following the day on which such public announcement is first made by the Corporation.

(4) To be eligible to be a nominee for election or reelection as a director of the Corporation, a proposed nominee must deliver (in accordance with the time periods prescribed for delivery of notice under Section 2.9(A)(2) of these Bylaws and applicable law) to the Secretary at the principal executive offices of the Corporation (i) a written questionnaire with respect to the background and qualification of such person and the background of any other person or entity on whose behalf the nomination is being made (which questionnaire the Proposing Person shall request in writing from the Secretary with at least seven (7) days’ prior

notice); (ii) a written representation and agreement (in the form provided by the Secretary upon written request) that such person (A) is not and will not become a party to (1) any agreement, arrangement or understanding (whether written or oral) with, and has not given any commitment or assurance to, any person or entity as to how such person, if elected as a director of the Corporation, will act or vote in such capacity on any issue or question (a “Voting Commitment”) that has not been disclosed to the Corporation or (2) any Voting Commitment that could limit or interfere with such person’s ability to comply, if elected as a director of the Corporation, with such person’s fiduciary duties under applicable law, is not and will not become a party to any agreement, arrangement or understanding (whether written or oral) with any person or entity other than the Corporation with respect to any direct or indirect compensation, reimbursement or indemnification in connection with service or action as a director of the Corporation that has not been disclosed to the Corporation, (C) in such person’s individual capacity and on behalf of any person or entity on whose behalf the nomination is being made, would be in compliance, if elected as a director of the Corporation, and will comply with all applicable law and all applicable rules of the U.S. exchanges upon which the Common Stock of the Corporation is listed and all applicable publicly disclosed corporate governance, conflict of interest, confidentiality and stock ownership and trading policies and other guidelines of the Corporation, (D) in such person’s individual capacity and on behalf of any person or entity on whose behalf the nomination is being made, intends to serve a full term if elected as a director of the Corporation and (E) will provide facts, statements and other information in all communications with the Corporation and its stockholders that are or will be true and correct in all material respects and do not and will not omit to state a material fact necessary in order to make the statements made, in light of the circumstances under which they were made, not misleading; and (iii) a written director agreement (which agreement shall be provided by the Secretary upon written request).

(5) The foregoing notice requirements of this Section 2.9(A) shall be deemed satisfied by a stockholder with respect to business or a nomination if such stockholder has notified the Corporation of his intention to present a proposal or make a nomination at an annual meeting in compliance with the applicable rules and regulations promulgated under the Exchange Act and such stockholder’s proposal or nomination has been included in a proxy statement that has been prepared by the Corporation to solicit proxies for such annual meeting.

(6) For purposes of these Bylaws, the term “Proposing Person” shall mean (i) the stockholder providing the notice of nomination or any other business proposed to be brought before the meeting of stockholders, (ii) the beneficial owner or beneficial owners, if different, on whose behalf the notice of nomination or any other business proposed to be brought before the meeting is made, (iii) any affiliate or associate (each within the meaning of Rule 12b-2 under the Exchange Act for purposes of these Bylaws) of such stockholder or beneficial owners and (iv) any other person with whom such stockholder or beneficial owner (or any of their respective affiliates or associates) is acting in concert.

(B) Special Meetings of Stockholders. Only such business shall be conducted at a special meeting of stockholders as shall have been brought before the meeting pursuant to the Corporation’s notice of meeting. Nominations of persons for election to the Board may be made at a special meeting of stockholders at which directors are to be elected pursuant to a notice of meeting (a) as provided by the then-applicable terms in the Stockholders’ Agreement, (b) by or at the direction of the Board or any committee thereof or (c) provided that the Board has determined that directors shall be elected at such meeting, by any stockholder of the Corporation who (i) is a stockholder of record at the time of giving of notice provided for in these Bylaws and at the time of the special meeting, (ii) is entitled to vote at the meeting, and (iii) complies with the notice procedures set forth in these Bylaws and applicable law. In the event a special meeting of stockholders is called for the purpose of electing one or more directors to the Board, any stockholder of record among such requesting stockholders may nominate a person or persons (as the case may be), for election to such position(s) as specified in the Corporation’s notice of meeting, if the stockholder’s notice required by Section 2.9(A)(2) of these Bylaws with respect to any nomination (including the completed and signed questionnaire, representation and agreement required by Section 2.9(A)(2) of these Bylaws) shall be delivered to the Secretary of the Corporation at the principal executive offices of the Corporation not earlier than the close of business on the 120th day prior to such special meeting and not later than the close of business on the later of the 90th day prior to such special meeting or, if the first public announcement of the date of such special meeting is less than one hundred (100) days prior to the date of such special meeting, the 10th day following the day on which public announcement is first made of the date of the special meeting and of the nominees proposed by the Board to be elected at such meeting. In no event shall the public announcement of an adjournment, recess, cancellation, rescheduling or postponement of a special meeting commence a new time period for the giving of a stockholder’s notice as described above.

(C) General.

(1) Only such persons who are nominated in accordance with the procedures set forth in these Bylaws or the Stockholders’ Agreement shall be eligible to serve as directors, and only such business shall be conducted at a meeting of stockholders as shall have been brought before the meeting in accordance with the procedures set forth in these Bylaws. Except as otherwise provided by applicable law, the Certificate of Incorporation or these Bylaws, the chairman of the meeting shall have the power and duty to determine whether a nomination or any business proposed to be brought before the meeting was made or proposed, as the case may be, in accordance with the procedures set forth in these Bylaws and, if any proposed nomination or business is not in compliance with these Bylaws, to declare that such defective proposal or nomination shall be disregarded.

(2) For purposes of these Bylaws, “public announcement” shall mean disclosure (i) in a press release reported by Dow Jones News Service, the Associated Press, (ii) any other national news service or in a document publicly filed by the Corporation with the Securities and Exchange Commission pursuant to Section 13, 14 or 15(d) of the Exchange Act and the rules and regulations promulgated thereunder or (iii) in a notice of meeting (or any supplement) pursuant to Section 2.6 of these Bylaws.

(3) Notwithstanding the foregoing provisions of these Bylaws, a stockholder shall also comply with all applicable requirements of the Exchange Act and the rules and regulations thereunder with respect to the matters set forth in these Bylaws; provided, however, that any references in these Bylaws to the Exchange Act or the rules promulgated thereunder are not intended to and shall not limit the requirements applicable to nominations or proposals as to any other business to be considered pursuant to Section 2.9(A)(2) or Section 2.9(B) of these Bylaws. Nothing in these Bylaws shall be deemed to affect any rights (i) of stockholders to request inclusion of proposals in the Corporation’s proxy statement pursuant to Rule 14a-8 under the Exchange Act or (ii) of the holders of any series of preferred stock of the Corporation (“Preferred Stock”) if and to the extent provided for under applicable law, the Certificate of Incorporation or these Bylaws.

(4) The Corporation may require any proposed stockholder nominee for director to furnish such other information as it may reasonably require to determine the eligibility of such proposed nominee to serve as a director of the Corporation. Unless otherwise required by law, if the stockholder (or a qualified representative of the stockholder) making a nomination or proposal under this Section 2.9 does not appear at a meeting of stockholders to present such nomination or proposal, the nomination shall be disregarded and the proposed business shall not be transacted, as the case may be, notwithstanding that proxies in favor thereof may have been received by the Corporation. For purposes of this Section 2.9, to be considered a qualified representative of the stockholder, a person must be a duly authorized officer, manager or partner of such stockholder or must be authorized by a writing executed by such stockholder or an electronic transmission delivered by such stockholder to act for such stockholder as proxy at the meeting of stockholders and such person must produce such writing or electronic transmission, or a reliable reproduction of the writing or electronic transmission, at the meeting of stockholders.

(5) A stockholder providing notice of a nomination or proposal of other business to be brought before a meeting shall further update and supplement such notice, if necessary, so that the information provided or required to be provided in such notice pursuant to this Section 2.9 shall be true and correct (i) as of the record date for the meeting and (ii) as of the date that is ten (10) business days prior to the meeting or any adjournment, recess, cancellation, rescheduling or postponement thereof, and such update and supplement shall be delivered to, or mailed and received by, the Secretary at the principal executive offices of the Corporation not later than five (5) business days after the record date for the meeting (in the case of the update and supplement required to be made as of the record date) and not later than seven (7) business days prior to the date for the meeting, if practicable (or, if not practicable, on the first practicable date prior to any adjournment, recess or postponement thereof (in the case of the update and supplement required to be made as of ten (10) business days prior to the meeting or any adjournment, recess or postponement thereof)).

(6) Notwithstanding anything to the contrary contained in this Section 2.9, for as long as the Stockholders’ Agreement remains in effect with respect to Cadent Energy Partners II, L.P. and its affiliates (“Cadent”) and Cactus WH Enterprises, LLC (“HoldCo”), Cadent and HoldCo (to the extent either is then subject to the Stockholders’ Agreement) shall not be subject to the notice procedures set forth in paragraph (A) (2) or paragraph (B) of this Section 2.9 with respect to any annual or special meeting of stockholders

Section 2.10 Conduct of Business. Meetings of stockholders shall be presided over by the chairman of the meeting of stockholders (the “chairman of the meeting”), who shall be the Chairman of the Board or, in his or her absence, the Chief Executive Officer or, in his or her absence, the President or, in his or her absence, a Senior Vice President or, in the absence of the foregoing persons, a person designated by the Board, or in the absence of such designation, a person chosen at the meeting. The Secretary shall act as secretary of the meeting, but in his or her absence, the chairman of the meeting may appoint any person to act as secretary of the meeting. The date and time of the opening and the closing of the polls for each matter upon which the stockholders will vote at a meeting shall be announced at the meeting by the chairman of the meeting. The Board may adopt by resolution such rules and regulations for the conduct of the meeting of stockholders as it shall deem appropriate. Except to the extent inconsistent with such rules and regulations as adopted by the Board, the chairman of the meeting of stockholders shall have the right and authority to convene and (for any or no reason) to recess and/or adjourn the meeting, to prescribe such rules, regulations and procedures and to do all such acts as, in the judgment of the chairman of the meeting, are appropriate for the proper conduct of the meeting. Such rules, regulations or procedures, whether adopted by the Board or prescribed by the chairman of the meeting, may include, without limitation, the following: (i) the establishment of an agenda or order of business for the meeting; (ii) regulation of the manner of voting and conduct of discussion; (iii) rules and procedures for maintaining order at the meeting and the safety of those present; (iv) limitations on attendance at or participation in the meeting to stockholders entitled to vote at the meeting, their duly authorized and constituted proxies or such other persons as the chairman of the meeting shall determine; (v) restrictions on entry to the meeting after the time fixed for the commencement thereof; (vi) limitations on the time allotted to questions or comments by participants; and (vii) restrictions on the use of audio or visual recording devices at the meeting. The chairman of the meeting of stockholders, in addition to making any other determinations that may be appropriate to the conduct of the meeting, shall, if the facts warrant, determine and declare to the meeting that a matter or business was not properly brought before the meeting and if such chairman of the meeting should so determine, such chairman of the meeting shall so declare to the meeting and any such matter or business not properly brought before the meeting shall not be transacted or considered. Unless and to the extent determined by the Board or the chairman of the meeting, meetings of stockholders shall not be required to be held in accordance with the rules of parliamentary procedure.

Section 2.11 Required Vote.  Subject to the rights of the holders of any series of Preferred Stock to elect directors under specified circumstances, at any meeting at which directors are to be elected, the directors shall be elected by a plurality of votes cast by the holders of shares entitled to vote in the election. If, in an election where the number of director nominees does not exceed the number of directors to be elected (an “Uncontested Election”), the number of shares voted “for” an incumbent director nominee does not exceed the number of “withhold” votes received by

such incumbent director nominee, such incumbent director shall be deemed to have tendered his or her resignation to the Board for consideration following the certification of the election results. The Nominating and Governance Committee of the Corporation shall consider such resignation and make a recommendation to the Board on whether to accept or reject such incumbent director’s resignation or whether other action should be taken. The Board shall then consider each such tendered resignation and act on each, taking into account its fiduciary duties to the Corporation and the stockholders.  Within 90 days from the date of the certification of the election results, the Corporation shall publicly disclose the decision of the Board, and, if applicable, the Board’s reason for rejecting any such tendered resignation(s). An incumbent director who shall be deemed to have tendered his or her resignation for consideration shall not participate in the Corporation’s Nominating and Governance Committee’s recommendation or the Board’s decision, or any deliberations related thereto. If a director’s resignation pursuant to this Section 2.11 is accepted by the Board, then the Board may fill the resulting vacancy pursuant to the provisions of Section 3.9 or may decrease the size of the Board pursuant to Section 3.2. The Board shall nominate for election or re-election as director only candidates who have tendered irrevocable conditional resignations (in substantially the form attached hereto as Annex A) that will be effective upon (i) the failure of such director to receive more “for” votes than “withhold” votes at the next annual meeting at which they face re-election in an Uncontested Election; and (ii) Board acceptance of such resignation.  In addition, the Board shall fill director vacancies and new directorships only with candidates who agree to tender, promptly following their appointment to the Board, the same form of resignation tendered by the other directors.  The election of directors by the stockholders shall be by written ballot if directed by the chairman of the meeting or if the number of nominees exceeds the number of directors to be elected. Unless otherwise provided in the Certificate of Incorporation, cumulative voting for the election of directors shall be prohibited. Except as otherwise provided by applicable law, the rules and regulations of any stock exchange applicable to the Corporation, the Certificate of Incorporation, or these Bylaws, in all matters other than the election of directors and certain non-binding advisory votes described below, the affirmative vote of a majority of the shares present in person or represented by proxy at the meeting and entitled to vote on the matter shall be the act of the stockholders. In non-binding advisory matters with more than two possible vote choices, the affirmative vote of a plurality of the shares present in person or represented by proxy at the meeting and entitled to vote on the matter shall be the recommendation of the stockholders.

Section 2.12 Treasury Stock. The Corporation shall not vote, directly or indirectly, shares of its own stock owned by it or any other corporation, if a majority of shares entitled to vote in the election of directors of such corporation is held, directly or indirectly by the Corporation, and such shares will not be counted for quorum purposes; provided, however, that the foregoing shall not limit the right of the Corporation or such other corporation, to vote stock of the Corporation held in a fiduciary capacity.

Section 2.13 Inspectors of Elections; Opening and Closing the Polls. At any meeting at which a vote is taken by ballots, the Board by resolution may, and when required by applicable law, shall, appoint one or more inspectors, which inspector or inspectors may include individuals who serve the Corporation in other capacities, including, without limitation, as officers, employees, agents or representatives, to act at the meetings of stockholders and make a written report thereof. One or more persons may be designated as alternate inspectors to replace any inspector who fails to act. If no inspector or alternate has been appointed to act or is able to act at

a meeting of stockholders and the appointment of an inspector is required by applicable law, the chairman of the meeting shall appoint one or more inspectors to act at the meeting. Each inspector, before discharging his duties, shall take and sign an oath to faithfully execute the duties of inspector with strict impartiality and according to the best of his ability. The inspectors shall have the duties prescribed by applicable law.

Article III

BOARD OF DIRECTORS

Section 3.1 General Powers. The business and affairs of the Corporation shall be managed by or under the direction of the Board elected in accordance with these Bylaws. In addition to the powers and authorities by these Bylaws expressly conferred upon them, the Board may exercise all such powers of the Corporation and do all such lawful acts and things as are not by statute or by the Certificate of Incorporation or by these Bylaws required to be exercised or done by the stockholders. The directors shall act only as a Board or a committee thereof, and the individual directors shall have no power as such.

Section 3.2 Number, Tenure and Qualifications. Subject to the rights of the holders of any series of Preferred Stock to elect directors under specified circumstances, if any, the number of directors shall be fixed from time to time in the manner provided in the Certificate of Incorporation. The election and terms of office of directors shall be as set forth in the Certificate of Incorporation.

Section 3.3 Regular Meetings. Subject to Section 3.5, regular meetings of the Board shall be held on such dates, and at such times and places, as are determined from time to time by resolution of the Board.

Section 3.4 Special Meetings. Special meetings of the Board shall be called at the request of the Chairman of the Board, the Chief Executive Officer or a majority of the members of the Board then in office. The person or persons authorized to call special meetings of the Board may fix the place, if any, date and time of the meetings. Any business may be conducted at a special meeting of the Board.

Section 3.5 Notice. Notice of any meeting of directors shall be given to each director at his business or residence in writing by hand delivery, first-class or overnight mail, courier service or facsimile or electronic transmission or orally by telephone. If mailed by first-class mail, such notice shall be deemed adequately delivered when deposited in the United States mails so addressed, with postage thereon prepaid, at least five (5) days before such meeting. If by overnight mail or courier service, such notice shall be deemed adequately delivered when the notice is delivered to the overnight mail or courier service company at least 24 hours before such meeting. If by facsimile or electronic transmission, such notice shall be deemed adequately delivered when the notice is transmitted at least 24 hours before such meeting. If by telephone or by hand delivery, the notice shall be given at least 24 hours prior to the time set for the meeting and shall be confirmed by facsimile or electronic transmission that is sent promptly thereafter. Neither the business to be transacted at, nor the purpose of, any regular or special meeting of the Board need be specified in the notice of such meeting, except for amendments to these Bylaws, as provided

under Section 8.1. A meeting may be held at any time without notice if all the directors are present or if those not present waive notice of the meeting in accordance with Section 7.4 of these Bylaws.

Section 3.6 Action by Consent of Board. Any action required or permitted to be taken at any meeting of the Board or of any committee thereof may be taken without a meeting if all members of the Board or committee, as the case may be, consent thereto in writing, including by electronic transmission, and the writing or writings or electronic transmissions are filed with the minutes of proceedings of the Board or committee. Such consent shall have the same force and effect as a unanimous vote at a meeting, and may be stated as such in any document or instrument filed with the Secretary of State of the State of Delaware.

Section 3.7 Conference Telephone Meetings. Members of the Board or any committee thereof may participate in a meeting of the Board or such committee by means of conference telephone or other communications equipment by means of which all persons participating in the meeting can hear each other, and such participation in a meeting shall constitute presence in person at such meeting, except where such person participates in the meeting for the express purpose of objecting to the transaction of any business on the ground that the meeting is not lawfully called or convened.

Section 3.8 Quorum. Subject to Section 3.9, a whole number of directors equal to at least a majority of the Board shall constitute a quorum for the transaction of business, but if at any meeting of the Board there shall be less than a quorum present, a majority of the directors present may, to the fullest extent permitted by law, adjourn the meeting from time to time without further notice unless (i) the date, time and place, if any, of the adjourned meeting are not announced at the time of adjournment, in which case notice conforming to the requirements of Section 3.5 of these Bylaws shall be given to each director, or (ii) the meeting is adjourned for more than 24 hours, in which case the notice referred to in clause (i) shall be given to those directors not present at the announcement of the date, time and place of the adjourned meeting. The act of the majority of the directors present at a meeting at which a quorum is present shall be the act of the Board. The directors present at a duly organized meeting may continue to transact business until adjournment, notwithstanding the withdrawal of enough directors to leave less than a quorum.

Section 3.9 Vacancies. Subject to applicable law, the rights of holders of any series of Preferred Stock then outstanding and the then-applicable terms of the Stockholders’ Agreement, any newly created directorship that results from an increase in the number of directors or any vacancy on the Board that results from the death, disability, resignation, disqualification or removal of any director or from any other cause shall, unless otherwise required by law or by resolution of the Board, be filled in accordance with the Certificate of Incorporation. Any director elected to fill a vacancy not resulting from an increase in the number of directors shall hold office for the remaining term of his predecessor. No decrease in the number of authorized directors constituting the Board shall shorten the term of any incumbent director.

Section 3.10 Removal. Subject to the then applicable terms of the Stockholders’ Agreement, directors of the Corporation may be removed in the manner provided in the Certificate of Incorporation and applicable law.

Section 3.11 Records. The Board shall cause to be kept a record containing the minutes of the proceedings of the meetings of the Board and of the stockholders, appropriate stock books and registers and such books of records and accounts as may be necessary for the proper conduct of the business of the Corporation.

Section 3.12 Compensation. Unless otherwise restricted by the Certificate of Incorporation or these Bylaws, the Board shall have authority to fix the compensation of directors, including fees and reimbursement of expenses. The Corporation will cause each non-employee director serving on the Board to be reimbursed for all reasonable out-of-pocket costs and expenses incurred by him in connection with such service.

Section 3.13 Regulations. To the extent consistent with applicable law, the Certificate of Incorporation and these Bylaws, the Board may adopt such rules and regulations for the conduct of meetings of the Board and for the management of the affairs and business of the Corporation as the Board may deem appropriate.

Article IV

COMMITTEES

Section 4.1 Designation; Powers. The Board may designate one or more committees, each committee to consist of one or more of the directors of the Corporation. Any such committee, to the extent permitted by applicable law and to the extent provided in the resolution of the Board, shall have and may exercise all the powers and authority of the Board in the management of the business and affairs of the Corporation, and may authorize the seal of the Corporation to be affixed to all papers which may require it.

Section 4.2 Procedure; Meetings; Quorum. Any committee designated pursuant to Section 4.1 shall choose its own chairman by a majority vote of the members then in attendance in the event the chairman has not been selected by the Board, shall keep regular minutes of its proceedings and report the same to the Board when requested, and shall meet at such times and at such place or places as may be provided by the charter of such committee or by resolution of such committee or resolution of the Board. At every meeting of any such committee, the presence of a majority of all the members thereof shall constitute a quorum and the affirmative vote of a majority of the members present shall be necessary for the adoption by it of any resolution. The Board shall adopt a charter for each committee for which a charter is required by applicable laws, regulations or stock exchange rules, may adopt a charter for any other committee, and may adopt other rules and regulations for the governance of any committee not inconsistent with the provisions of these Bylaws or any such charter, and each committee may adopt its own rules and regulations of governance, to the extent not inconsistent with these Bylaws or any charter or other rules and regulations adopted by the Board.

Section 4.3 Substitution of Members. The Board may designate one or more directors as alternate members of any committee, who may replace any absent or disqualified member at any meeting of such committee. In the absence or disqualification of a member of a committee, the member or members present at any meeting and not disqualified from voting, whether or not constituting a quorum, may unanimously appoint another member of the Board to act at the meeting in the place of the absent or disqualified member.

Article V

OFFICERS

Section 5.1 Officers. The officers of the Corporation shall be a Chairman of the Board, a Chief Executive Officer, a Secretary, a Treasurer and such other officers as the Board from time to time may deem proper. The Chairman of the Board shall be chosen from among the directors. All officers elected by the Board shall each have such powers and duties as generally pertain to their respective offices, subject to the specific provisions of this Article V. Such officers shall also have such powers and duties as from time to time may be conferred by the Board or by any committee thereof. The Board or any committee thereof may from time to time elect, or the Chairman of the Board or Chief Executive Officer may appoint, such other officers (including one or more Vice Presidents, Assistant Secretaries and Assistant Treasurers) and such agents, as may be necessary or desirable for the conduct of the business of the Corporation. Such other officers and agents shall have such duties and shall hold their offices for such terms as shall be provided in these Bylaws or as may be prescribed by the Board or such committee thereof or by the Chairman of the Board or Chief Executive Officer, as the case may be.

Section 5.2 Election and Term of Office. The officers of the Corporation shall be elected or appointed from time to time by the Board. Each officer shall hold office until his successor shall have been duly elected or appointed and shall have qualified or until his death or until he shall resign, but any officer may be removed from office at any time by the affirmative vote of a majority of the Board or, except in the case of an officer or agent elected by the Board, by the Chairman of the Board or Chief Executive Officer. Such removal shall be without prejudice to the contractual rights, if any, of the person so removed. No elected officer shall have any contractual rights against the Corporation for compensation by virtue of such election beyond the date of the election of his successor, his death, his resignation or his removal, whichever event shall first occur, except as otherwise provided in an employment contract or under an employee deferred compensation plan.

Section 5.3 Chairman of the Board. The Chairman of the Board shall preside at all meetings of the Board. The Chairman of the Board shall be responsible for the general management of the affairs of the Corporation and shall perform all duties incidental to his office that may be required by law and all such other duties as are properly required of him by the Board. He shall make reports to the Board and the stockholders, and shall see that all orders and resolutions of the Board and of any committee thereof are carried into effect. The Chairman of the Board may also serve as Chief Executive Officer, if so elected by the Board.

Section 5.4 Chief Executive Officer. The Chief Executive Officer shall act in a general executive capacity and shall assist the Chairman of the Board in the administration and operation of the Corporation’s business and general supervision of its policies and affairs. The Chief Executive Officer shall, in the absence of or because of the inability to act of the Chairman of the Board, perform all duties of the Chairman of the Board and preside at all meetings of the Board. The Chief Executive Officer shall have the authority to sign, in the name and on behalf of the Corporation, checks, orders, contracts, leases, notes, drafts and all other documents and instruments in connection with the business of the Corporation.

Section 5.5 President. The President, if any, shall have such powers and shall perform such duties as shall be assigned to him by the Board.

Section 5.6 Senior Vice Presidents and Vice Presidents. Each Senior Vice President and Vice President, if any, shall have such powers and shall perform such duties as shall be assigned to him by the Board.

Section 5.7 Treasurer. The Treasurer shall exercise general supervision over the receipt, custody and disbursement of corporate funds. The Treasurer shall cause the funds of the Corporation to be deposited in such banks as may be authorized by the Board, or in such banks as may be designated as depositaries in the manner provided by resolution of the Board. He shall have such further powers and duties and shall be subject to such directions as may be granted or imposed upon him from time to time by the Board, the Chairman of the Board or the Chief Executive Officer.

Section 5.8 Secretary. The Secretary shall keep or cause to be kept in one or more books provided for that purpose, the minutes of all meetings of the Board, the committees of the Board and the stockholders; he shall see that all notices are duly given in accordance with the provisions of these Bylaws and as required by applicable law; he shall be custodian of the records and the seal of the Corporation and affix and attest the seal to all stock certificates of the Corporation (unless the seal of the Corporation on such certificates shall be a facsimile, as hereinafter provided) and affix and attest the seal to all other documents to be executed on behalf of the Corporation under its seal; and he shall see that the books, reports, statements, certificates and other documents and records required by law to be kept and filed are properly kept and filed; and in general, he shall perform all the duties incident to the office of Secretary and such other duties as from time to time may be assigned to him by the Board, the Chairman of the Board or the Chief Executive Officer.

Section 5.9 Vacancies. A newly created elected office and a vacancy in any elected office because of death, resignation, or removal may be filled by the Board for the unexpired portion of the term at any meeting of the Board. Any vacancy in an office appointed by the Chairman of the Board or the Chief Executive Officer because of death, resignation, or removal may be filled by the Chairman of the Board or the Chief Executive Officer.

Section 5.10 Action with Respect to Securities of Other Corporations. Unless otherwise directed by the Board, the Chief Executive Officer shall have power to vote and otherwise act on behalf of the Corporation, in person or by proxy, at any meeting of security holders of or with respect to any action of security holders of any other corporation in which the Corporation may hold securities and otherwise to exercise any and all rights and powers that the Corporation may possess by reason of its ownership of securities in such other corporation.

Article VI

STOCK CERTIFICATES AND TRANSFERS

Section 6.1 Stock Certificates and Transfers. The interest of each stockholder of the Corporation shall be evidenced by certificates for shares of stock in such form as the appropriate officers of the Corporation may from time to time prescribe, provided that the Board may provide by resolution or resolutions that some or all of any or all classes or series of its stock may be uncertificated or electronic shares. The shares of the stock of the Corporation shall be entered in the books of the Corporation as they are issued and shall exhibit the holder’s name and number of

shares. Subject to the provisions of the Certificate of Incorporation, the shares of the stock of the Corporation shall be transferred on the books of the Corporation, which may be maintained by a third-party registrar or transfer agent, by the holder thereof in person or by his attorney, upon surrender for cancellation of certificates for at least the same number of shares, with an assignment and power of transfer endorsed thereon or attached thereto, duly executed, with such proof of the authenticity of the signature as the Corporation or its agents may reasonably require or upon receipt of proper transfer instructions from the registered holder of uncertificated shares and upon compliance with appropriate procedures for transferring shares in uncertificated form, at which time the Corporation shall issue a new certificate to the person entitled thereto (if the stock is then represented by certificates), cancel the old certificate and record the transaction upon its books.

Each certificated share of stock shall be signed, countersigned and registered in such manner as the Board may by resolution prescribe, which resolution may permit all or any of the signatures on such certificates to be in facsimile. In case any officer, transfer agent or registrar who has signed or whose facsimile signature has been placed upon a certificate has ceased to be such officer, transfer agent or registrar before such certificate is issued, it may be issued by the Corporation with the same effect as if he were such officer, transfer agent or registrar at the date of issue.

Section 6.2 Lost, Stolen or Destroyed Certificates. No certificate for shares or uncertificated shares of stock in the Corporation shall be issued in place of any certificate alleged to have been lost, destroyed or stolen, except on production of such evidence of such loss, destruction or theft and on delivery to the Corporation of a bond of indemnity in such amount, upon such terms and secured by such surety, as the Board or any financial officer may in its or his discretion require.

Section 6.3 Ownership of Shares. The Corporation shall be entitled to treat the holder of record of any share or shares of stock of the Corporation as the holder in fact thereof and, accordingly, shall not be bound to recognize any equitable or other claim to or interest in such share or shares on the part of any other person, whether or not it shall have express or other notice thereof, except as otherwise provided by the laws of the State of Delaware.

Section 6.4 Regulations Regarding Certificates. Subject to applicable law, the Board shall have the power and authority to make all such rules and regulations as they may deem expedient concerning the issue, transfer and registration or the replacement of certificates for shares of stock of the Corporation. The Corporation may enter into additional agreements with stockholders to restrict the transfer of stock of the Corporation in any manner not prohibited by the DGCL.

Article VII

MISCELLANEOUS PROVISIONS

Section 7.1 Fiscal Year. The fiscal year of the Corporation shall begin on the first day of January and end on the 31st day of December of each year.

Section 7.2 Dividends. Except as otherwise provided by law or the Certificate of Incorporation, the Board may from time to time declare, and the Corporation may pay, dividends

on its outstanding shares of stock, which dividends may be paid in either cash, property or shares of stock of the Corporation. A member of the Board, or a member of any committee designated by the Board, shall be fully protected in relying in good faith upon the records of the Corporation and upon such information, opinions, reports or statements presented to the Corporation by any of its officers or employees, or committees of the Board, or by any other person as to matters the director reasonably believes are within such other person’s professional or expert competence and who has been selected with reasonable care by or on behalf of the Corporation, as to the value and amount of the assets, liabilities or net profits of the Corporation, or any other facts pertinent to the existence and amount of surplus or other funds from which dividends might properly be declared and paid.

Section 7.3 Seal. The corporate seal shall have inscribed thereon the words “Corporate Seal,” the year of incorporation and around the margin thereof the words “Cactus, Inc. — Delaware.”

Section 7.4 Waiver of Notice. Whenever any notice is required to be given to any stockholder or director of the Corporation under the provisions of the DGCL, the Certificate of Incorporation or these Bylaws, a waiver thereof in writing, including by electronic transmission, signed by the person or persons entitled to such notice, whether before or after the time stated therein, shall be deemed equivalent to the giving of such notice. Neither the business to be transacted at, nor the purpose of, any annual or special meeting of the stockholders or the Board or committee thereof need be specified in any waiver of notice of such meeting. Attendance of a person at a meeting shall constitute a waiver of notice of such meeting, except when the person attends a meeting for the express purpose of objecting at the beginning of the meeting, to the transaction of any business because the meeting is not lawfully called or convened.

Section 7.5 Resignations. Any director or any officer, whether elected or appointed, may resign at any time by giving written notice, including by electronic transmission, of such resignation to the Chairman of the Board, the Chief Executive Officer, the President or the Secretary, and such resignation shall be deemed to be effective as of the close of business on the date said notice is received by the Chairman of the Board, the Chief Executive Officer, the President or the Secretary, or at such later time as is specified therein. No formal action shall be required of the Board or the stockholders to make any such resignation effective.

Section 7.6 Indemnification and Advancement of Expenses.

(A) The Corporation shall indemnify and hold harmless, to the fullest extent permitted by applicable law as it presently exists or may hereafter be amended, any person who was or is made a party or is threatened to be made a party to or is otherwise involved in any threatened, pending or completed action, suit or proceeding, whether civil, criminal, administrative or investigative (a “proceeding”) by reason of the fact that he, or a person for whom he is the legal representative, is or was a director or officer of the Corporation or, while a director or officer of the Corporation, is or was serving at the request of the Corporation as a director, officer, employee, trustee or agent of another corporation or of a partnership, joint venture, trust, other enterprise or nonprofit entity, including service with respect to an employee benefit plan (a “Covered Person”), whether the basis of such proceeding is alleged action in an official capacity as a director, officer, employee, trustee or agent, or in any other capacity while serving as a director, officer, employee, trustee or agent, against all expenses, liability and loss (including, without limitation, attorneys’

fees, judgments, fines, ERISA excise taxes and penalties and amounts paid in settlement) reasonably incurred or suffered by such Covered Person in connection with such proceeding.

(B) The Corporation shall, to the fullest extent not prohibited by applicable law as it presently exists or may hereafter be amended, pay the expenses (including attorneys’ fees) incurred by a Covered Person in defending any proceeding in advance of its final disposition; provided, however, that to the extent required by applicable law, such payment of expenses in advance of the final disposition of the proceeding shall be made only upon receipt of an undertaking by the Covered Person to repay all amounts advanced if it should be ultimately determined by final judicial decision from which there is no further right to appeal that the Covered Person is not entitled to be indemnified under this Section 7.6 or otherwise.

(C) The rights to indemnification and advancement of expenses under this Section 7.6 shall be contract rights and such rights shall continue as to a Covered Person who has ceased to be a director, officer, employee, trustee or agent and shall inure to the benefit of his heirs, executors and administrators. Notwithstanding the foregoing provisions of this Section 7.6, except for proceedings to enforce rights to indemnification and advancement of expenses, the Corporation shall indemnify and advance expenses to a Covered Person in connection with a proceeding (or part thereof) initiated by such Covered Person only if such proceeding (or part thereof) was authorized by the Board.

(D) If a claim for indemnification under this Section 7.6 (following the final disposition of such proceeding) is not paid in full within sixty (60) days after the Corporation has received a claim therefor by the Covered Person, or if a claim for any advancement of expenses under this Section 7.6 is not paid in full within thirty (30) days after the Corporation has received a statement or statements requesting such amounts to be advanced, the Covered Person shall thereupon (but not before) be entitled to file suit to recover the unpaid amount of such claim. If successful in whole or in part, the Covered Person shall be entitled to be paid the expense of prosecuting such claim to the fullest extent permitted by applicable law. In any such action, the Corporation shall have the burden of proving that the Covered Person is not entitled to the requested indemnification or advancement of expenses under applicable law.

(E) The rights conferred on any Covered Person by this Section 7.6 shall not be exclusive of any other rights that such Covered Person may have or hereafter acquire under any statute, any provision of the Certificate of Incorporation, these Bylaws, any agreement or vote of stockholders or disinterested directors or otherwise.

(F) This Section 7.6 shall not limit the right of the Corporation, to the extent and in the manner permitted by applicable law, to indemnify and to advance expenses to persons other than Covered Persons when and as authorized by appropriate corporate action.

(G) Any Covered Person entitled to indemnification and/or advancement of expenses, in each case pursuant to this Section 7.6, may have certain rights to indemnification, advancement and/or insurance provided by one or more persons with whom or which such Covered Person may be associated. The Corporation hereby acknowledges and agrees that (i) the Corporation shall be the indemnitor of first resort with respect to any proceeding, expense, liability or matter that is the subject of this Section 7.6, (ii) the Corporation shall be primarily liable for all

such obligations and any indemnification afforded to a Covered Person in respect of a proceeding, expense, liability or matter that is the subject of this Section 7.6, whether created by law, organizational or constituent documents, contract or otherwise, (iii) any obligation of any persons with whom or which a Covered Person may be associated to indemnify such Covered Person and/or advance expenses or liabilities to such Covered Person in respect of any proceeding shall be secondary to the obligations of the Corporation hereunder, (iv) the Corporation shall be required to indemnify each Covered Person and advance expenses to each Covered Person hereunder to the fullest extent provided herein without regard to any rights such Covered Person may have against any other person with whom or which such Covered Person may be associated or insurer of any such person, and (v) the Corporation irrevocably waives, relinquishes and releases any other person with whom or which a Covered Person may be associated from any claim of contribution, subrogation or any other recovery of any kind in respect of amounts paid by the Corporation hereunder.

Section 7.7 Notices. Except as otherwise specifically provided herein or required by applicable law, all notices required to be given to any stockholder, director, officer, employee or agent shall be in writing and may in every instance be effectively given by hand delivery to the recipient thereof, by depositing such notice in the mails, postage paid, or by sending such notice by commercial courier service, or by facsimile or other electronic transmission, provided that notice to stockholders by electronic transmission shall be given in the manner provided in Section 232 of the DGCL. Any such notice shall be addressed to such stockholder, director, officer, employee or agent at his last known address as the same appears on the books of the Corporation. Without limiting the manner by which notice otherwise may be given effectively, notice to any stockholder shall be deemed given: (1) if by facsimile, when directed to a number at which the stockholder has consented to receive notice; (2) if by electronic mail, when directed to an electronic mail address at which the stockholder has consented to receive notice; (3) if by posting on an electronic network together with separate notice to the stockholder of such specific posting, upon the later of (A) such posting and (B) the giving of such separate notice; (4) if by any other form of electronic transmission, when directed to the stockholder; and (5) if by mail, when deposited in the mail, postage prepaid, directed to the stockholder at such stockholder’s address as it appears on the records of the Corporation.

Section 7.8 Facsimile and Electronic Signatures. In addition to the provisions for use of facsimile or electronic signatures elsewhere specifically authorized in these Bylaws, facsimile or electronic signatures of any officer or officers of the Corporation may be used whenever and as authorized by the Board or a committee thereof.

Section 7.9 Time Periods. Except as otherwise explicitly set forth in these Bylaws, in applying any provision of these Bylaws that require that an act be done or not done a specified number of days prior to an event or that an act be done during a period of a specified number of days prior to an event, calendar days shall be used, the day of the doing of the act shall be excluded, and the day of the event shall be included.

Section 7.10 Reliance Upon Books, Reports and Records. Each director, each member of any committee designated by the Board, and each officer of the Corporation shall, in the performance of his duties, be fully protected in relying in good faith upon the records of the Corporation and upon information, opinions, reports or statements presented to the Corporation by

any of the Corporation’s officers or employees, or committees designated by the Board, or by any other person as to the matters the member reasonably believes are within such other person’s professional or expert competence and who has been selected with reasonable care by or on behalf of the Corporation.

Section 7.11 Severability. Whenever possible, each provision or portion of any provision of these Bylaws will be interpreted in such manner as to be effective and valid under applicable law, but if any provision or portion of any provision of these Bylaws is held to be invalid, illegal or unenforceable in any respect under any applicable law or rule in any jurisdiction, such provision or portion of any provision shall be severable and the invalidity, illegality or unenforceability will not affect any other provision or portion of any provision in such jurisdiction, and these Bylaws will be reformed, construed and enforced in such jurisdiction as if such invalid, illegal or unenforceable provision or portion of any provision had never been contained herein.

Article VIII

AMENDMENTS

Section 8.1 Amendments. Subject to the provisions of the Certificate of Incorporation, these Bylaws may be amended, altered or repealed (a) by resolution adopted by a majority of the directors present at any special or regular meeting of the Board at which a quorum is present if, in the case of such special meeting only, notice of such amendment, alteration or repeal is contained in the notice or waiver of notice of such meeting or (b) at any regular or special meeting of the stockholders upon the affirmative vote of at least 662/3% of the shares of the Corporation entitled to vote in the election of directors if, in the case of such special meeting only, notice of such amendment, alteration or repeal is contained in the notice or waiver of notice of such meeting.

Notwithstanding the foregoing, Sections 3.9 and 3.10 and this paragraph of Section 8.1 may only be amended, altered or repealed at any regular or special meeting of the stockholders upon the affirmative vote of at least 662/3% of the shares of the Corporation entitled to vote thereon if, in the case of such special meeting only, notice of such amendment, alteration or repeal is contained in the notice or waiver of notice of such meeting.

Notwithstanding the foregoing, no amendment, alteration or repeal of Section 7.6 shall adversely affect any right or protection existing under these Bylaws immediately prior to such amendment, alteration or repeal, including any right or protection of a present or former director, officer or employee thereunder in respect of any act or omission occurring prior to the time of such amendment.

Notwithstanding the foregoing, (1) so long as the Stockholders’ Agreement remains in effect, the Board shall not approve any amendment, alteration or repeal of any provision of these Bylaws, or the adoption of any new Bylaw, that would be contrary to or inconsistent with the then-applicable terms of the Stockholders’ Agreement and (2) no amendment to the Stockholders’ Agreement (whether or not such amendment modifies any provision to the Stockholders’ Agreement to which these Bylaws are subject) shall be deemed an amendment of these Bylaws for purposes of this Section 8.1.

 

[Annex A]

Form of Irrevocable Conditional Resignation Letter

Cactus, Inc.
920 Memorial City Way, Suite 300
Houston, Texas 77024

Reference is hereby made to Section 2.11 of the Amended and Restated Bylaws (as amended, the “Bylaws”) of Cactus, Inc., a Delaware corporation (the “Company”), which, among other things, sets forth the Company’s director resignation policy (the “Director Resignation Policy”).  Section 2.11 of the Bylaws provide in relevant part as follows:

Subject to the rights of the holders of any series of Preferred Stock to elect directors under specified circumstances, at any meeting at which directors are to be elected, the directors shall be elected by a plurality of votes cast by the holders of shares entitled to vote in the election. If, in an election where the number of director nominees does not exceed the number of directors to be elected (an “Uncontested Election”), the number of shares voted “for” an incumbent director nominee does not exceed the number of “withhold” votes received by such incumbent director nominee, such incumbent director shall be deemed to have tendered his or her resignation to the Board for consideration following the certification of the election results. The Nominating and Governance Committee of the Corporation shall consider such resignation and make a recommendation to the Board on whether to accept or reject such incumbent director’s resignation or whether other action should be taken. The Board shall then consider each such tendered resignation and act on each, taking into account its fiduciary duties to the Corporation and the stockholders.  Within 90 days from the date of the certification of the election results, the Corporation shall publicly disclose the decision of the Board, and, if applicable, the Board’s reason for rejecting any such tendered resignation(s). An incumbent director who shall be deemed to have tendered his or her resignation for consideration shall not participate in the Corporation’s Nominating and Governance Committee’s recommendation or the Board’s decision, or any deliberations related thereto. If a director’s resignation pursuant to this Section 2.11 is accepted by the Board, then the Board may fill the resulting vacancy pursuant to the provisions of Section 3.9 or may decrease the size of the Board pursuant to Section 3.2. The Board shall nominate for election or re-election as director only candidates who have tendered irrevocable conditional resignations (in substantially the form attached hereto as Annex A) that will be effective upon (i) the failure of such director to receive more “for” votes than “withhold” votes at the next annual meeting at which they face re-election in an Uncontested Election; and (ii) Board acceptance of such resignation.  In addition, the Board shall fill director vacancies and new directorships only with candidates who agree to tender, promptly following their appointment to the Board, the same form of resignation tendered by the other directors.  The election of directors by the stockholders shall be by written ballot if directed by the chairman of the meeting or if the number of nominees exceeds the number of directors to be elected. Unless otherwise provided in the Certificate of Incorporation, cumulative voting for the election of directors shall be prohibited. Except as otherwise provided by applicable law, the rules and regulations of any stock exchange applicable to the Corporation, the Certificate of Incorporation, or these Bylaws, in all matters other than the election of directors and certain non-binding advisory votes described below, the affirmative vote of a majority of the shares present in person or represented by proxy at the meeting and entitled to vote on the matter shall be the act of the stockholders. In non-binding advisory matters with more than two possible vote

choices, the affirmative vote of a plurality of the shares present in person or represented by proxy at the meeting and entitled to vote on the matter shall be the recommendation of the stockholders.

In accordance with the Director Resignation Policy, I hereby resign from my position as a director of the Company, effective upon (i) my failure to receive more votes “for” my election than “withhold” votes at the next annual meeting at which I face re-election in an Uncontested Election; and (ii) Board acceptance of such resignation.

Very truly yours,

____________________________________

Name:

 

 

EX-31.1 3 whd-20200331xex31d1.htm EX-31.1 Exhibit_31_1

Exhibit 31.1

CERTIFICATION OF PRINCIPAL EXECUTIVE OFFICER
PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Scott Bender, certify that:

1. I have reviewed this quarterly report on Form 10-Q of Cactus, Inc. (the “registrant”); 

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

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

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

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

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

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

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

5. The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions): 

(a)  all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and 

(b)  any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting. 

 

 

Date: April 30, 2020

/s/ Scott Bender

 

Scott Bender
President, Chief Executive Officer and
Director
(Principal Executive Officer)

 

EX-31.2 4 whd-20200331xex31d2.htm EX-31.2 Exhibit_31_2

Exhibit 31.2

CERTIFICATION OF PRINCIPAL FINANCIAL OFFICER
PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Stephen Tadlock, certify that:

1. I have reviewed this quarterly report on Form 10-Q of Cactus, Inc. (the “registrant”); 

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

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

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

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

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

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

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

5. The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions): 

(a)  all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and 

(b)  any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting. 

 

 

 

 

Date: April 30, 2020

/s/ Stephen Tadlock

 

Stephen Tadlock

Vice President, Chief Financial Officer and Treasurer

(Principal Financial Officer)

 

EX-32.1 5 whd-20200331xex32d1.htm EX-32.1 Exhibit_32_1

Exhibit 32.1

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

This certification is provided pursuant to § 906 of the Sarbanes-Oxley Act of 2002, 18 U.S.C. § 1350, and accompanies the Quarterly Report on Form 10-Q for the period ended March  31, 2020 of Cactus, Inc. (the “Company”) as filed with the Securities and Exchange Commission on the date hereof (the “Report”).

I, Scott Bender, President,  Chief Executive Officer and Director of the Company, certify 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.

 

 

 

Date: April 30, 2020

/s/ Scott Bender

 

Scott Bender

President, Chief Executive Officer and Director

(Principal Executive Officer)

 

 

EX-32.2 6 whd-20200331xex32d2.htm EX-32.2 Exhibit_32_2

Exhibit 32.2

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

This certification is provided pursuant to § 906 of the Sarbanes-Oxley Act of 2002, 18 U.S.C. § 1350, and accompanies the Quarterly Report on Form 10-Q for the period ended March 31, 2020 of Cactus, Inc. (the “Company”) as filed with the Securities and Exchange Commission on the date hereof (the “Report”).

I, Stephen Tadlock, Vice President, Chief Financial Officer and Treasurer of the Company, certify 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.

 

 

 

Date: April 30, 2020

/s/ Stephen Tadlock

 

Stephen Tadlock

Vice President, Chief Financial Officer and Treasurer

(Principal Financial Officer)

 

EX-101.SCH 7 whd-20200430.xsd EX-101.SCH 00100 - Statement - CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONSOLIDATED STATEMENTS OF INCOME link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME link:presentationLink link:calculationLink link:definitionLink 00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - Inventories (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - Preparation of Interim Financial Statements and Other Items link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - Subsequent Events link:presentationLink link:calculationLink link:definitionLink 20102 - Disclosure - Preparation of Interim Financial Statements and Other Items (Policies) link:presentationLink link:calculationLink link:definitionLink 40101 - Disclosure - Preparation of Interim Financial Statements and Other Items (Details) link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - Concentrations Risks and Uncertainties (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - Property and Equipment, net (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - Debt - Credit agreement (Details) link:presentationLink link:calculationLink link:definitionLink 40702 - Disclosure - Revenue - Disaggregated by category (Details) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Revenue - Contracts with customers (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - Tax Receivable Agreement (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - Equity - Redemptions and Dividends (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - Subsequent Events (Details) link:presentationLink link:calculationLink link:definitionLink 00405 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - Concentrations Risks and Uncertainties link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - Accounts Receivable and Allowance for Credit Losses link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - Inventories link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - Property and Equipment, net link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - Debt link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - Revenue link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - Tax Receivable Agreement link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - Equity link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - Earnings Per Share link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - Accounts Receivable and Allowance for Credit Losses (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - Inventories (Tables) link:presentationLink link:calculationLink link:definitionLink 30503 - Disclosure - Property and Equipment, net (Tables) link:presentationLink link:calculationLink link:definitionLink 30703 - Disclosure - Revenue (Tables) link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - Earnings Per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - Accounts Receivable and Allowance for Credit Losses (Details) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 8 whd-20200430_cal.xml EX-101.CAL EX-101.DEF 9 whd-20200430_def.xml EX-101.DEF EX-101.LAB 10 whd-20200430_lab.xml EX-101.LAB EX-101.PRE 11 whd-20200430_pre.xml EX-101.PRE XML 13 R13.htm IDEA: XBRL DOCUMENT v3.20.1
Property and Equipment, net
3 Months Ended
Mar. 31, 2020
Property and Equipment, net  
Property and Equipment, net

5. Property and Equipment, net

Property and equipment are stated at cost. We manufacture or construct most of our own rental assets. During the manufacture of these assets, they are reflected as construction in progress until complete. Property and equipment consists of the following:

March 31, 

December 31, 

    

2020

    

2019

Land

$

3,203

$

3,203

Buildings and improvements

 

21,812

 

21,655

Machinery and equipment

 

55,826

 

55,494

Vehicles under finance lease

24,936

24,275

Rental equipment

 

169,307

 

161,156

Furniture and fixtures

 

1,762

 

1,684

Computers and software

 

3,475

 

3,317

Gross property and equipment

 

280,321

 

270,784

Less: Accumulated depreciation

 

(130,853)

 

(123,397)

Net property and equipment

 

149,468

 

147,387

Construction in progress

 

13,403

 

14,361

Total property and equipment, net

$

162,871

$

161,748

XML 14 R17.htm IDEA: XBRL DOCUMENT v3.20.1
Equity
3 Months Ended
Mar. 31, 2020
Equity  
Equity

9. Equity

As of March 31, 2020, Cactus Inc. owned 62.9% of Cactus LLC as compared to 62.8% as of December 31, 2019. As of March 31, 2020, Cactus Inc. had outstanding 47.4 million shares of Class A common stock (representing 62.9% of the total voting power) and 28.0 million shares of Class B common stock (representing 37.1% of the total voting power).

Redemptions of CW Units

Pursuant to the First Amended and Restated Limited Liability Company Operating Agreement of Cactus Wellhead, LLC (the “Cactus Wellhead LLC Agreement”), holders of CW Units are entitled to redeem their CW Units, which results in additional Class A common stock outstanding. Since our IPO in February 2018, 32.6 million CW Units have been redeemed in exchange for shares of Class A common stock with 8.5 million occurring during the three months ended March 31, 2019 as part of a secondary offering. We did not receive any of the proceeds as part of the offering and incurred $1.0 million in offering expenses which were recorded in other expense, net, in the consolidated statement of income. No CW Unit redemptions occurred during the three months ended March 31, 2020.

Dividends

 

On January 30, 2020, our board of directors declared a cash dividend of $0.09 per share of Class A common stock of which $4.3 million was paid on March 19, 2020. A de minimis amount of dividends was paid during 2020 to restricted stock unit holders with accrued dividends that vested during the period.

Member Distributions

Distributions made by Cactus LLC are generally required to be made pro rata among all its members. For the three months ended March 31, 2020, Cactus LLC distributed $3.7 million to Cactus Inc. to fund the March 19, 2020 dividend payment and made pro rata distributions to its other members totaling $2.2 million over the same period. During the three months ended March 31, 2019, Cactus LLC made $0.2 million in pro rata distributions to its members other than Cactus Inc.

Limitation of Members’ Liability

Under the terms of the Cactus Wellhead LLC Agreement, the members of Cactus LLC are not obligated for debt, liabilities, contracts or other obligations of Cactus LLC. Profits and losses are allocated to members as defined in the Cactus LLC Agreement.

XML 15 R34.htm IDEA: XBRL DOCUMENT v3.20.1
Revenue - Contracts with customers (Details) - USD ($)
$ in Millions
Mar. 31, 2020
Dec. 31, 2019
Contract Balances    
Deferred revenue $ 1.5 $ 1.4
XML 16 R30.htm IDEA: XBRL DOCUMENT v3.20.1
Inventories (Details) - USD ($)
$ in Thousands
Mar. 31, 2020
Dec. 31, 2019
Summary of inventories    
Raw materials $ 1,702 $ 1,538
Work-in-progress 3,857 4,619
Finished goods 94,742 107,214
Total inventory $ 100,301 $ 113,371
XML 17 R38.htm IDEA: XBRL DOCUMENT v3.20.1
Subsequent Events (Details) - position
1 Months Ended 3 Months Ended
Apr. 30, 2020
Mar. 31, 2020
Mar. 31, 2020
Low Oil Prices And The Coronavirus (COVID-19) [Member]      
Subsequent Event [Line Items]      
Restructuring and Related Cost, Number of Positions Eliminated   277 277
Subsequent event      
Subsequent Event [Line Items]      
Restructuring and Related Cost, Number of Positions Eliminated 212    
JSON 18 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "whd-20200430x10q.htm": { "axisCustom": 0, "axisStandard": 15, "contextCount": 108, "dts": { "calculationLink": { "local": [ "whd-20200430_cal.xml" ] }, "definitionLink": { "local": [ "whd-20200430_def.xml" ], "remote": [ "http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-eedm-def-2019-01-31.xml", "http://xbrl.fasb.org/srt/2019/elts/srt-eedm1-def-2019-01-31.xml" ] }, "inline": { "local": [ "whd-20200430x10q.htm" ] }, "labelLink": { "local": [ "whd-20200430_lab.xml" ], "remote": [ "https://xbrl.sec.gov/dei/2019/dei-doc-2019-01-31.xml", "http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-doc-2019-01-31.xml" ] }, "presentationLink": { "local": [ "whd-20200430_pre.xml" ] }, "referenceLink": { "remote": [ "http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-ref-2019-01-31.xml", "https://xbrl.sec.gov/dei/2019/dei-ref-2019-01-31.xml" ] }, "schema": { "local": [ "whd-20200430.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", "http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2019/elts/us-roles-2019-01-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd", "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd", "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://xbrl.fasb.org/srt/2019/elts/srt-types-2019-01-31.xsd", "http://xbrl.fasb.org/srt/2019/elts/srt-roles-2019-01-31.xsd", "https://xbrl.sec.gov/country/2017/country-2017-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2019/elts/us-types-2019-01-31.xsd", "https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "http://xbrl.fasb.org/us-gaap/2019/elts/us-parts-codification-2019-01-31.xsd", "http://www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd" ] } }, "elementCount": 319, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2019-01-31": 18, "http://xbrl.sec.gov/dei/2019-01-31": 5, "total": 23 }, "keyCustom": 20, "keyStandard": 237, "memberCustom": 12, "memberStandard": 27, "nsprefix": "whd", "nsuri": "http://cactuswellhead.com/20200430", "report": { "R1": { "firstAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00090 - Document - Document and Entity Information", "role": "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "shortName": "Document and Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10201 - Disclosure - Concentrations Risks and Uncertainties", "role": "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertainties", "shortName": "Concentrations Risks and Uncertainties", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10301 - Disclosure - Accounts Receivable and Allowance for Credit Losses", "role": "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLosses", "shortName": "Accounts Receivable and Allowance for Credit Losses", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10401 - Disclosure - Inventories", "role": "http://cactuswellhead.com/role/DisclosureInventories", "shortName": "Inventories", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10501 - Disclosure - Property and Equipment, net", "role": "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNet", "shortName": "Property and Equipment, net", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10601 - Disclosure - Debt", "role": "http://cactuswellhead.com/role/DisclosureDebt", "shortName": "Debt", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10701 - Disclosure - Revenue", "role": "http://cactuswellhead.com/role/DisclosureRevenue", "shortName": "Revenue", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "whd:TaxReceivableAgreementDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10801 - Disclosure - Tax Receivable Agreement", "role": "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreement", "shortName": "Tax Receivable Agreement", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "whd:TaxReceivableAgreementDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10901 - Disclosure - Equity", "role": "http://cactuswellhead.com/role/DisclosureEquity", "shortName": "Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11001 - Disclosure - Commitments and Contingencies", "role": "http://cactuswellhead.com/role/DisclosureCommitmentsAndContingencies", "shortName": "Commitments and Contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11101 - Disclosure - Earnings Per Share", "role": "http://cactuswellhead.com/role/DisclosureEarningsPerShare", "shortName": "Earnings Per Share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS", "role": "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "shortName": "CONSOLIDATED BALANCE SHEETS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11201 - Disclosure - Subsequent Events", "role": "http://cactuswellhead.com/role/DisclosureSubsequentEvents", "shortName": "Subsequent Events", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "20102 - Disclosure - Preparation of Interim Financial Statements and Other Items (Policies)", "role": "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies", "shortName": "Preparation of Interim Financial Statements and Other Items (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30303 - Disclosure - Accounts Receivable and Allowance for Credit Losses (Tables)", "role": "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesTables", "shortName": "Accounts Receivable and Allowance for Credit Losses (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30403 - Disclosure - Inventories (Tables)", "role": "http://cactuswellhead.com/role/DisclosureInventoriesTables", "shortName": "Inventories (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30503 - Disclosure - Property and Equipment, net (Tables)", "role": "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetTables", "shortName": "Property and Equipment, net (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30703 - Disclosure - Revenue (Tables)", "role": "http://cactuswellhead.com/role/DisclosureRevenueTables", "shortName": "Revenue (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31103 - Disclosure - Earnings Per Share (Tables)", "role": "http://cactuswellhead.com/role/DisclosureEarningsPerShareTables", "shortName": "Earnings Per Share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "p", "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_us-gaap_StatementClassOfStockAxis_us-gaap_CommonClassAMember_rn-gHpECDEOI3BknCzYF6A", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unitRef": "Unit_Divide_USD_shares_huzz8240LkSm-aQ8-NTZiw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40101 - Disclosure - Preparation of Interim Financial Statements and Other Items (Details)", "role": "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails", "shortName": "Preparation of Interim Financial Statements and Other Items (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R28": { "firstAnchor": { "ancestors": [ "whd:ConcentrationRiskNumberOfCustomers", "p", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_RevenueFromContractWithCustomerMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_1UifN0T5DkuZQtfP_eR6yA", "decimals": "INF", "first": true, "lang": null, "name": "whd:ConcentrationRiskNumberOfCustomers", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_customer_2ULhtNVN6UCsMRZ2kLqHoQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40201 - Disclosure - Concentrations Risks and Uncertainties (Details)", "role": "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails", "shortName": "Concentrations Risks and Uncertainties (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "whd:ConcentrationRiskNumberOfCustomers", "p", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_RevenueFromContractWithCustomerMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_1UifN0T5DkuZQtfP_eR6yA", "decimals": "INF", "first": true, "lang": null, "name": "whd:ConcentrationRiskNumberOfCustomers", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_customer_2ULhtNVN6UCsMRZ2kLqHoQ", "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "p", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:UnbilledReceivablesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40301 - Disclosure - Accounts Receivable and Allowance for Credit Losses (Details)", "role": "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails", "shortName": "Accounts Receivable and Allowance for Credit Losses (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:UnbilledReceivablesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)", "role": "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40401 - Disclosure - Inventories (Details)", "role": "http://cactuswellhead.com/role/DisclosureInventoriesDetails", "shortName": "Inventories (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40501 - Disclosure - Property and Equipment, net (Details)", "role": "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails", "shortName": "Property and Equipment, net (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:LongTermDebt", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40601 - Disclosure - Debt - Credit agreement (Details)", "role": "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails", "shortName": "Debt - Credit agreement (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:LongTermDebt", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40702 - Disclosure - Revenue - Disaggregated by category (Details)", "role": "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "shortName": "Revenue - Disaggregated by category (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "2", "lang": null, "name": "whd:RevenueAsPercentage", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_mDnJgvAP_kCqWrb6S04uKw", "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40703 - Disclosure - Revenue - Contracts with customers (Details)", "role": "http://cactuswellhead.com/role/DisclosureRevenueContractsWithCustomersDetails", "shortName": "Revenue - Contracts with customers (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_3_31_2020_St5AQ5jdkEi9nFh6tsmtoQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "p", "whd:TaxReceivableAgreementDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_2_1_2018_To_2_28_2018_6tsdovwo2Uucq2e0adatyw", "decimals": "2", "first": true, "lang": null, "name": "whd:TaxSavingsPayableToTraHoldersAsPercent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_mDnJgvAP_kCqWrb6S04uKw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40801 - Disclosure - Tax Receivable Agreement (Details)", "role": "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails", "shortName": "Tax Receivable Agreement (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "whd:TaxReceivableAgreementDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_2_1_2018_To_2_28_2018_6tsdovwo2Uucq2e0adatyw", "decimals": "2", "first": true, "lang": null, "name": "whd:TaxSavingsPayableToTraHoldersAsPercent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_mDnJgvAP_kCqWrb6S04uKw", "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:CommonStockDividendsPerShareDeclared", "reportCount": 1, "unitRef": "Unit_Divide_USD_shares_huzz8240LkSm-aQ8-NTZiw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40901 - Disclosure - Equity - Redemptions and Dividends (Details)", "role": "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "shortName": "Equity - Redemptions and Dividends (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_srt_CounterpartyNameAxis_whd_CactusIncMember_3B0tFlKg8UWB8FmaiSGy4Q", "decimals": "-5", "lang": null, "name": "us-gaap:DistributionMadeToLimitedPartnerCashDistributionsPaid", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41101 - Disclosure - Earnings Per Share (Details)", "role": "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "shortName": "Earnings Per Share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "lang": null, "name": "us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_3_1_2020_To_3_31_2020_us-gaap_ConcentrationRiskByTypeAxis_whd_LowOilPricesAndCoronavirusCovid19Member_zv5LJe3wlUSY2sck3yGuqQ", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated", "reportCount": 1, "unitRef": "Unit_Standard_position_QOyVBn_4GUK03JPbyjHsrg", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41201 - Disclosure - Subsequent Events (Details)", "role": "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails", "shortName": "Subsequent Events (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:SubsequentEventsTextBlock", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_4_1_2020_To_4_30_2020_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_btq_gH02l0W4vR9SlpDNiQ", "decimals": "0", "lang": null, "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_position_QOyVBn_4GUK03JPbyjHsrg", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF INCOME", "role": "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome", "shortName": "CONSOLIDATED STATEMENTS OF INCOME", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "lang": null, "name": "us-gaap:SellingGeneralAndAdministrativeExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "role": "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome", "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "lang": null, "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_12_31_2018_us-gaap_StatementClassOfStockAxis_us-gaap_CommonClassAMember_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_IzW6SjxG30u7TYclzkAANg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "role": "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "As_Of_12_31_2018_us-gaap_StatementClassOfStockAxis_us-gaap_CommonClassAMember_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_IzW6SjxG30u7TYclzkAANg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:CommonStockDividendsPerShareDeclared", "reportCount": 1, "unitRef": "Unit_Divide_USD_shares_huzz8240LkSm-aQ8-NTZiw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00405 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)", "role": "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": null }, "R8": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS", "role": "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows", "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": "-3", "lang": null, "name": "us-gaap:DepreciationDepletionAndAmortization", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_1TIR9YPpN0GFx0dZg3NOuQ", "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10101 - Disclosure - Preparation of Interim Financial Statements and Other Items", "role": "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItems", "shortName": "Preparation of Interim Financial Statements and Other Items", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "whd-20200430x10q.htm", "contextRef": "Duration_1_1_2020_To_3_31_2020_QwgRnOsKyUimvv482j3zug", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 40, "tag": { "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "This is focus fiscal year of the document report in CCYY 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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented. If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r221" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r222" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r224" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r223" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "employerIdItemType" }, "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12gTitle": { "auth_ref": [ "r220" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r219" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "srt_ChiefExecutiveOfficerMember": { "auth_ref": [ "r114" ], "lang": { "en-US": { "role": { "label": "Chief Executive Officer [Member]", "terseLabel": "Chief Executive Officer [Member]" } } }, "localname": "ChiefExecutiveOfficerMember", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "srt_ConsolidatedEntitiesAxis": { "auth_ref": [ "r218" ], "lang": { "en-US": { "role": { "label": "Consolidated Entities [Axis]" } } }, "localname": "ConsolidatedEntitiesAxis", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "srt_ConsolidatedEntitiesDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Consolidated Entities [Domain]", "terseLabel": "Consolidated Entities [Domain]" } } }, "localname": "ConsolidatedEntitiesDomain", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "srt_CounterpartyNameAxis": { "auth_ref": [ "r42", "r77" ], "lang": { "en-US": { "role": { "label": "Counterparty Name [Axis]" } } }, "localname": "CounterpartyNameAxis", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "stringItemType" }, "srt_DirectorMember": { "auth_ref": [ "r114" ], "lang": { "en-US": { "role": { "label": "Director [Member]", "terseLabel": "Board of Directors" } } }, "localname": "DirectorMember", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "srt_ExecutiveOfficerMember": { "auth_ref": [ "r114" ], "lang": { "en-US": { "role": { "label": "Executive Officer [Member]", "terseLabel": "Executive officers" } } }, "localname": "ExecutiveOfficerMember", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "srt_MaximumMember": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "srt_OwnershipAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Ownership [Axis]" } } }, "localname": "OwnershipAxis", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "stringItemType" }, "srt_OwnershipDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Ownership [Domain]", "terseLabel": "Ownership [Domain]" } } }, "localname": "OwnershipDomain", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r113", "r154", "r156", "r215", "r216" ], "lang": { "en-US": { "role": { "label": "Product and Service [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Products And Services [Domain]", "terseLabel": "Product and Service [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Range [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Range [Member]", "terseLabel": "Range [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Repurchase Agreement Counterparty Name [Domain]", "terseLabel": "Counterparty Name [Domain]" } } }, "localname": "RepurchaseAgreementCounterpartyNameDomain", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "srt_TitleOfIndividualAxis": { "auth_ref": [ "r114", "r189" ], "lang": { "en-US": { "role": { "label": "Title of Individual [Axis]" } } }, "localname": "TitleOfIndividualAxis", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "stringItemType" }, "srt_TitleOfIndividualWithRelationshipToEntityDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Title Of Individual With Relationship To Entity [Domain]", "terseLabel": "Relationship to Entity [Domain]" } } }, "localname": "TitleOfIndividualWithRelationshipToEntityDomain", "nsuri": "http://fasb.org/srt/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accounting Policies [Abstract]" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsNotesAndLoansReceivableNetCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accounts, Notes, Loans and Financing Receivable, Net, Current [Abstract]", "verboseLabel": "Accounts Receivable" } } }, "localname": "AccountsNotesAndLoansReceivableNetCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r28" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsPayableCurrentAndNoncurrent": { "auth_ref": [ "r197", "r211" ], "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.", "label": "Accounts Payable" } } }, "localname": "AccountsPayableCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r2", "r12", "r115", "r116", "r155" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, Net, Current", "terseLabel": "Accounts receivable, net of allowance of $1,430 and $837, respectively" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r31" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "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 obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Liabilities, Current", "terseLabel": "Accrued expenses and other current liabilities" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r26", "r133" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "negatedTerseLabel": "Less: Accumulated depreciation" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r45", "r46", "r47" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r44", "r47", "r48", "r171" ], "lang": { "en-US": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "Accumulated Other Comprehensive Income [Member]", "terseLabel": "Accumulated Other Comprehensive Income (Loss)" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdditionalPaidInCapital": { "auth_ref": [ "r13" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "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. Includes adjustments to additional paid in capital. Some examples of such adjustments include recording the issuance of debt with a beneficial conversion feature and certain tax consequences of equity instruments awarded to employees. Use this element for the aggregate amount of additional paid-in capital associated with common and preferred stock. For additional paid-in capital associated with only common stock, use the element additional paid in capital, common stock. For additional paid-in capital associated with only preferred stock, use the element additional paid in capital, preferred stock.", "label": "Additional Paid in Capital", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapital", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [], "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]", "terseLabel": "Additional Paid-In Capital" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) to additional paid-in capital (APIC) for recognition and exercise of award under share-based payment arrangement.", "label": "Adjustments to Additional Paid in Capital, Share-based Compensation and Exercise of Stock Options", "terseLabel": "Stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "verboseLabel": "Reconciliation of net income to net cash provided by operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "auth_ref": [ "r118", "r121", "r122", "r125" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable.", "label": "Allowance for Doubtful Accounts Receivable", "periodEndLabel": "Balance at End of Period", "periodStartLabel": "Balance at Beginning of Period" } } }, "localname": "AllowanceForDoubtfulAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r18", "r118", "r121" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Allowance for Doubtful Accounts Receivable, Current", "terseLabel": "Allowance for doubtful accounts receivable" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Allowance for Doubtful Accounts Receivable [Roll Forward]", "verboseLabel": "Allowance for credit losses" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableRollforward", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": { "auth_ref": [ "r124" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.", "label": "Allowance for Doubtful Accounts Receivable, Write-offs", "negatedLabel": "Write off" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfFinancingCostsAndDiscounts": { "auth_ref": [ "r69", "r182" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense attributable to debt discount (premium) and debt issuance costs.", "label": "Amortization of Debt Issuance Costs and Discounts", "terseLabel": "Debt discount and deferred financing cost amortization" } } }, "localname": "AmortizationOfFinancingCostsAndDiscounts", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_Assets": { "auth_ref": [ "r111", "r193", "r204" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Assets [Abstract]", "terseLabel": "Assets" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r3", "r4", "r41" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 6.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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Basis of Accounting, Policy [Policy Text Block]", "verboseLabel": "Basis of Presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r79" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.", "label": "Basis of Presentation and Significant Accounting Policies [Text Block]", "verboseLabel": "Preparation of Interim Financial Statements and Other Items" } } }, "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItems" ], "xbrltype": "textBlockItemType" }, "us-gaap_BuildingAndBuildingImprovementsMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities and any addition, improvement, or renovation to the structure, for example, but not limited to, interior masonry, interior flooring, electrical, and plumbing.", "label": "Building And Building Improvements [Member]", "terseLabel": "Buildings and improvements" } } }, "localname": "BuildingAndBuildingImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r1", "r24", "r71" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "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, at Carrying Value", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValueAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Cash and Cash Equivalents, at Carrying Value [Abstract]", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValueAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r66", "r71", "r75" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "End of period", "periodStartLabel": "Beginning of period" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r66", "r178" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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 increase in cash and cash equivalents" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ClassOfStockDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock.", "label": "Class Of Stock [Domain]", "terseLabel": "Class of Stock [Domain]" } } }, "localname": "ClassOfStockDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails", "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r34", "r140", "r198", "r210" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and Contingencies.", "terseLabel": "Commitments and contingencies" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Commitments and Contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r139", "r141" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and Contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureCommitmentsAndContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonClassAMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Classification of common stock representing ownership interest in a corporation.", "label": "Common Class A [Member]", "terseLabel": "Class A Common Stock" } } }, "localname": "CommonClassAMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails", "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonClassBMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Classification of common stock that has different rights than Common Class A, representing ownership interest in a corporation.", "label": "Common Class B [Member]", "terseLabel": "Class B Common Stock" } } }, "localname": "CommonClassBMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails", "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockDividendsPerShareDeclared": { "auth_ref": [ "r149" ], "lang": { "en-US": { "role": { "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding.", "label": "Common Stock, Dividends, Per Share, Declared", "terseLabel": "Cash dividend declared", "verboseLabel": "Dividends declared per common share" } } }, "localname": "CommonStockDividendsPerShareDeclared", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]", "terseLabel": "Common stock" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r11" ], "lang": { "en-US": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "verboseLabel": "Common stock, par value" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r11" ], "lang": { "en-US": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "verboseLabel": "Common stock, shares authorized" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r11" ], "lang": { "en-US": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "verboseLabel": "Common stock, shares issued" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r11", "r144" ], "lang": { "en-US": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "verboseLabel": "Common stock, shares outstanding" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r11" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "terseLabel": "Common stock, $0.01 par value" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r50", "r52", "r53" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "totalLabel": "Comprehensive income attributable to Cactus Inc." } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest": { "auth_ref": [ "r50", "r52", "r166", "r167", "r174" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income (loss) and other comprehensive income (loss), attributable to noncontrolling interests. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Noncontrolling Interest", "verboseLabel": "Less: comprehensive income attributable to non-controlling interest" } } }, "localname": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest": { "auth_ref": [ "r50", "r52", "r165", "r174" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest", "totalLabel": "Comprehensive income" } } }, "localname": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r102", "r103", "r175", "r176" ], "lang": { "en-US": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]", "terseLabel": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r102", "r103", "r175", "r176", "r217" ], "lang": { "en-US": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r102", "r103", "r175", "r176", "r217" ], "lang": { "en-US": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails", "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskDisclosureTextBlock": { "auth_ref": [ "r108" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date.", "label": "Concentration Risk Disclosure [Text Block]", "terseLabel": "Concentrations, Risks and Uncertainties" } } }, "localname": "ConcentrationRiskDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertainties" ], "xbrltype": "textBlockItemType" }, "us-gaap_ConcentrationRiskLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Concentration Risk [Line Items]", "terseLabel": "Concentrations, Risks and Uncertainties" } } }, "localname": "ConcentrationRiskLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r102", "r103", "r175", "r176" ], "lang": { "en-US": { "role": { "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.", "label": "Concentration of risk (as a percent)", "verboseLabel": "Concentration of risk (as a percent)" } } }, "localname": "ConcentrationRiskPercentage1", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTable": { "auth_ref": [ "r100", "r102", "r103", "r104", "r175", "r177" ], "lang": { "en-US": { "role": { "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.", "label": "Concentration Risk [Table]" } } }, "localname": "ConcentrationRiskTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r102", "r103", "r175", "r176" ], "lang": { "en-US": { "role": { "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.", "label": "Concentration Risk Type [Domain]", "terseLabel": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails", "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConstructionInProgressMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "Construction In Progress [Member]", "terseLabel": "Construction in progress" } } }, "localname": "ConstructionInProgressMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Contract with Customer, Asset and Liability [Abstract]", "terseLabel": "Contract Balances" } } }, "localname": "ContractWithCustomerAssetAndLiabilityAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueContractsWithCustomersDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r151", "r152", "r155" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer, Liability, Current", "terseLabel": "Deferred revenue" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueContractsWithCustomersDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r59" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingExpenses", "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 and Services Sold", "terseLabel": "Purchases from the vendor", "verboseLabel": "Cost of revenue" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSoldAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Cost of Goods and Services Sold [Abstract]", "terseLabel": "Costs and expenses" } } }, "localname": "CostOfGoodsAndServicesSoldAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "stringItemType" }, "us-gaap_CostOfGoodsProductLineMember": { "auth_ref": [ "r102" ], "lang": { "en-US": { "role": { "documentation": "Cost of product sold and service rendered from specified product or service, when it serves as benchmark in concentration of risk calculation.", "label": "Cost Of Goods Product Line [Member]", "terseLabel": "Purchases" } } }, "localname": "CostOfGoodsProductLineMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CreditFacilityAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Axis]" } } }, "localname": "CreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CreditFacilityDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Domain]", "terseLabel": "Credit Facility [Domain]" } } }, "localname": "CreditFacilityDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r101" ], "lang": { "en-US": { "role": { "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.", "label": "Customer Concentration Risk [Member]", "terseLabel": "Customer" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DebtDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Debt" } } }, "localname": "DebtDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_DebtDisclosureTextBlock": { "auth_ref": [ "r143" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.", "label": "Debt Disclosure [Text Block]", "verboseLabel": "Debt" } } }, "localname": "DebtDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebt" ], "xbrltype": "textBlockItemType" }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.", "label": "Debt Instrument, Basis Spread on Variable Rate", "terseLabel": "Applicable margin rate (as a percent)" } } }, "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails", "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentDescriptionOfVariableRateBasis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The reference rate for the variable rate of the debt instrument, such as LIBOR or the US Treasury rate and the maturity of the reference rate used, such as three months or six months LIBOR.", "label": "Debt Instrument, Description of Variable Rate Basis", "terseLabel": "Variable reference rate" } } }, "localname": "DebtInstrumentDescriptionOfVariableRateBasis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentLineItems": { "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": "Debt Instrument [Line Items]", "verboseLabel": "Long-term Debt" } } }, "localname": "DebtInstrumentLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentTable": { "auth_ref": [ "r33", "r78", "r145", "r146", "r147", "r148", "r180", "r181", "r183", "r203" ], "lang": { "en-US": { "role": { "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.", "label": "Schedule of Long-term Debt Instruments [Table]" } } }, "localname": "DebtInstrumentTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentTerm": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Debt Instrument, Term", "terseLabel": "Debt term" } } }, "localname": "DebtInstrumentTerm", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "durationItemType" }, "us-gaap_DeferredFinanceCostsCurrentGross": { "auth_ref": [ "r182" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, before accumulated amortization, of debt issuance costs classified as current. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.", "label": "Debt Issuance Costs, Gross, Current", "terseLabel": "Offering expenses" } } }, "localname": "DeferredFinanceCostsCurrentGross", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r161" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred tax asset, net" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r160", "r161" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "terseLabel": "Deferred tax liability, net" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r69", "r109" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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, Depletion and Amortization", "terseLabel": "Depreciation and amortization" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisaggregationOfRevenueLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Disaggregation of Revenue [Line Items]" } } }, "localname": "DisaggregationOfRevenueLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table]" } } }, "localname": "DisaggregationOfRevenueTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r154" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Revenues disaggregated by category" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid": { "auth_ref": [ "r94", "r95", "r149" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash distribution paid to unit-holder of limited liability company (LLC).", "label": "Distribution Made to Limited Liability Company (LLC) Member, Cash Distributions Paid", "negatedLabel": "Distributions to members" } } }, "localname": "DistributionMadeToLimitedLiabilityCompanyLLCMemberCashDistributionsPaid", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DistributionMadeToLimitedPartnerCashDistributionsPaid": { "auth_ref": [ "r94", "r95", "r149" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash distribution paid to unit-holder of limited partnership (LP).", "label": "Distribution Made to Limited Partner, Cash Distributions Paid", "terseLabel": "Cash distributions to unit holders" } } }, "localname": "DistributionMadeToLimitedPartnerCashDistributionsPaid", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Dividends": { "auth_ref": [ "r149", "r202" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of paid and unpaid cash, stock, and paid-in-kind (PIK) dividends declared, for example, but not limited to, common and preferred stock.", "label": "Dividends", "terseLabel": "Dividend paid" } } }, "localname": "Dividends", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DividendsCash": { "auth_ref": [ "r149", "r202" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of paid and unpaid cash dividends declared for classes of stock, for example, but not limited to, common and preferred.", "label": "Dividends, Cash", "negatedLabel": "Cash dividends declared" } } }, "localname": "DividendsCash", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Earnings Per Share" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r56", "r80", "r84", "r88", "r89", "r90", "r92", "r201", "r213" ], "lang": { "en-US": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earnings Per Share, Basic", "verboseLabel": "Earnings per Class A share - basic" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r56", "r80", "r84", "r88", "r89", "r90", "r92", "r201", "r213" ], "lang": { "en-US": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earnings Per Share, Diluted", "terseLabel": "Earnings per Class A share - diluted", "verboseLabel": "Earnings per Class A Share - diluted (1) (2)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDilutedLineItems": { "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": "Earnings Per Share, Diluted, by Common Class, Including Two Class Method [Line Items]" } } }, "localname": "EarningsPerShareDilutedLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r93" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "verboseLabel": "Earnings Per Share" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r178" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "terseLabel": "Effect of exchange rate changes on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EquipmentLeasedToOtherPartyMember": { "auth_ref": [ "r188" ], "lang": { "en-US": { "role": { "documentation": "Tangible personal property used to generate rental income.", "label": "Equipment Leased To Other Party [Member]", "terseLabel": "Rental equipment" } } }, "localname": "EquipmentLeasedToOtherPartyMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Equity" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r144" ], "lang": { "en-US": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]", "terseLabel": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueOfAssetsAcquired": { "auth_ref": [ "r72", "r73", "r74" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The fair value of assets acquired in noncash investing or financing activities.", "label": "Fair Value of Assets Acquired", "terseLabel": "Property and equipment in payables" } } }, "localname": "FairValueOfAssetsAcquired", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityCurrent": { "auth_ref": [ "r185" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.", "label": "Finance Lease, Liability, Current", "terseLabel": "Finance lease obligations, current portion" } } }, "localname": "FinanceLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityNoncurrent": { "auth_ref": [ "r185" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent.", "label": "Finance Lease, Liability, Noncurrent", "terseLabel": "Finance lease obligations, net of current portion" } } }, "localname": "FinanceLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeasePrincipalPayments": { "auth_ref": [ "r186", "r187" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash outflow for principal payment on finance lease.", "label": "Finance Lease, Principal Payments", "negatedLabel": "Payments on finance leases" } } }, "localname": "FinanceLeasePrincipalPayments", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_FurnitureAndFixturesMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Furniture And Fixtures [Member]", "terseLabel": "Furniture and fixtures" } } }, "localname": "FurnitureAndFixturesMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GainLossOnDispositionOfAssets1": { "auth_ref": [ "r69" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.", "label": "Gain (Loss) on Disposition of Assets", "negatedLabel": "Loss on disposal of assets" } } }, "localname": "GainLossOnDispositionOfAssets1", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r130", "r131" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill", "terseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r54", "r80", "r192", "r199", "r214" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_ProfitLoss", "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 income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest": { "auth_ref": [ "r165" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest.", "label": "Income (Loss) from Continuing Operations, Net of Tax, Including Portion Attributable to Noncontrolling Interest", "terseLabel": "Net income" } } }, "localname": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "CONSOLIDATED STATEMENTS OF INCOME" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r76", "r110", "r162" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_ProfitLoss", "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": "Income Tax Expense (Benefit)", "verboseLabel": "Income tax expense" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayableTrade": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 10.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", "terseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayableTrade", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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 amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa.", "label": "Increase (Decrease) in Deferred Income Taxes", "negatedLabel": "Deferred income taxes" } } }, "localname": "IncreaseDecreaseInDeferredIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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 aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventories" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in operating assets and liabilities:" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in other obligations or expenses incurred but not yet paid.", "label": "Increase (Decrease) in Other Accounts Payable and Accrued Liabilities", "terseLabel": "Accrued expenses and other liabilities" } } }, "localname": "IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Statement of Stockholders'/Members' Equity" } } }, "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r85", "r91" ], "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": "Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements", "verboseLabel": "Effect of dilutive shares (2)" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_InterestIncomeExpenseNonoperatingNet": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The net amount of nonoperating interest income (expense).", "label": "Interest Income (Expense), Nonoperating, Net", "terseLabel": "Interest income (expense), net" } } }, "localname": "InterestIncomeExpenseNonoperatingNet", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Inventories" } } }, "localname": "InventoryDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r129" ], "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": "Inventory Disclosure [Text Block]", "terseLabel": "Inventories" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventories" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryFinishedGoods": { "auth_ref": [ "r37" ], "calculation": { "http://cactuswellhead.com/role/DisclosureInventoriesDetails": { "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": "Inventory, Finished Goods, Gross", "terseLabel": "Finished goods" } } }, "localname": "InventoryFinishedGoods", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryGross": { "auth_ref": [ "r40" ], "calculation": { "http://cactuswellhead.com/role/DisclosureInventoriesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "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", "terseLabel": "Inventories", "totalLabel": "Total inventory" } } }, "localname": "InventoryGross", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventoriesDetails", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNetAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Inventory, Net [Abstract]", "terseLabel": "Summary of inventories" } } }, "localname": "InventoryNetAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventoriesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InventoryRawMaterials": { "auth_ref": [ "r39" ], "calculation": { "http://cactuswellhead.com/role/DisclosureInventoriesDetails": { "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": "Inventory, Raw Materials, Gross", "terseLabel": "Raw materials" } } }, "localname": "InventoryRawMaterials", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWorkInProcess": { "auth_ref": [ "r38" ], "calculation": { "http://cactuswellhead.com/role/DisclosureInventoriesDetails": { "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": "Inventory, Work in Process, Gross", "terseLabel": "Work-in-progress" } } }, "localname": "InventoryWorkInProcess", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWriteDown": { "auth_ref": [ "r128" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 12.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": "Inventory Write-down", "terseLabel": "Inventory obsolescence" } } }, "localname": "InventoryWriteDown", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_LandMember": { "auth_ref": [ "r156" ], "lang": { "en-US": { "role": { "documentation": "Part of earth's surface not covered by water.", "label": "Land [Member]", "terseLabel": "Land" } } }, "localname": "LandMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LetterOfCreditMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit).", "label": "Letter Of Credit [Member]", "terseLabel": "Letters of credit" } } }, "localname": "LetterOfCreditMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r30" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r17", "r196", "r208" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "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 equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "Liabilities and Equity" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r32" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LimitedLiabilityCompanyLLCOrLimitedPartnershipLPMembersOrLimitedPartnersOwnershipInterest": { "auth_ref": [ "r95" ], "lang": { "en-US": { "role": { "documentation": "Percentage investment held by members or limited partners of limited liability company (LLC) or limited partnership (LP).", "label": "Limited Liability Company or Limited Partnership, Members or Limited Partners, Ownership Interest" } } }, "localname": "LimitedLiabilityCompanyLLCOrLimitedPartnershipLPMembersOrLimitedPartnersOwnershipInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": { "auth_ref": [ "r29" ], "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": "Line of Credit Facility, Current Borrowing Capacity", "terseLabel": "Revolving credit facility available per borrowing base terms" } } }, "localname": "LineOfCreditFacilityCurrentBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "auth_ref": [ "r29" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.", "label": "Line of Credit Facility, Maximum Borrowing Capacity", "verboseLabel": "Maximum borrowing capacity" } } }, "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "auth_ref": [ "r120" ], "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": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]", "terseLabel": "Accounts Receivable and Allowance for Credit Losses" } } }, "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLosses" ], "xbrltype": "textBlockItemType" }, "us-gaap_LongTermDebt": { "auth_ref": [ "r8", "r142", "r194", "r205" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.", "label": "Long-term Debt", "verboseLabel": "Long-term debt outstanding" } } }, "localname": "LongTermDebt", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MachineryAndEquipmentMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "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 [Member]", "terseLabel": "Machinery and equipment" } } }, "localname": "MachineryAndEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_MinorityInterest": { "auth_ref": [ "r36", "r195", "r207" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "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 is directly or indirectly attributable to that ownership interest in subsidiary equity which is not attributable to the parent (that is, noncontrolling interest, previously referred to as minority interest).", "label": "Stockholders' Equity Attributable to Noncontrolling Interest", "terseLabel": "Non-controlling interest" } } }, "localname": "MinorityInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders": { "auth_ref": [ "r149" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Decrease in noncontrolling interest balance from payment of dividends or other distributions by the non-wholly owned subsidiary or partially owned entity, included in the consolidation of the parent entity, to the noncontrolling interest holders.", "label": "Noncontrolling Interest, Decrease from Distributions to Noncontrolling Interest Holders", "negatedLabel": "Member distribution" } } }, "localname": "MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r66" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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 cash used in financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "verboseLabel": "Cash flows from financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r66" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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 cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "verboseLabel": "Cash flows from investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r66", "r67", "r70" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "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 cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "verboseLabel": "Cash flows from operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r49", "r51", "r55", "r70", "r91", "r200", "r212" ], "calculation": { "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "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 attributable to Cactus Inc." } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetIncomeLossAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Income (Loss) Attributable to Parent [Abstract]", "terseLabel": "Numerator:" } } }, "localname": "NetIncomeLossAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLossAttributableToNoncontrollingInterest": { "auth_ref": [ "r49", "r51", "r169", "r173" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of Net Income (Loss) attributable to noncontrolling interest.", "label": "Net Income (Loss) Attributable to Noncontrolling Interest", "terseLabel": "Less: net income attributable to non-controlling interest" } } }, "localname": "NetIncomeLossAttributableToNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetIncomeLossAttributableToRedeemableNoncontrollingInterest": { "auth_ref": [ "r58" ], "calculation": { "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of Net Income (Loss) attributable to redeemable noncontrolling interest.", "label": "Net Income (Loss) Attributable to Redeemable Noncontrolling Interest", "terseLabel": "Net income attributable to non-controlling interest (1)" } } }, "localname": "NetIncomeLossAttributableToRedeemableNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "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 Pronouncements, Policy [Policy Text Block]", "verboseLabel": "Recent Accounting Pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NoncontrollingInterestMember": { "auth_ref": [ "r163" ], "lang": { "en-US": { "role": { "documentation": "This element represents that portion of equity (net assets) in a subsidiary not attributable, directly or indirectly, to the parent. A noncontrolling interest is sometimes called a minority interest.", "label": "Noncontrolling Interest [Member]", "terseLabel": "Non-controlling Interest" } } }, "localname": "NoncontrollingInterestMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "totalLabel": "Total costs and expenses" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 3.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": "Income from operations" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r185" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Operating lease liabilities, current portion" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r185" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Operating lease liabilities, net of current portion" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r184" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Operating lease right-of-use assets, net" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Organization Consolidation And Presentation Of Financial Statements [Abstract]" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r27" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "terseLabel": "Other noncurrent assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherCommitment": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions.", "label": "Other Commitment", "verboseLabel": "Total TRA liability" } } }, "localname": "OtherCommitment", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "auth_ref": [ "r43", "r179" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax", "terseLabel": "Foreign currency translation adjustments" } } }, "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeOtherNetOfTax": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) in other comprehensive income, after tax, from changes classified as other.", "label": "Other Comprehensive Income, Other, Net of Tax", "terseLabel": "Other comprehensive income (loss)" } } }, "localname": "OtherComprehensiveIncomeOtherNetOfTax", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r62" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other income (expense), net" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r64" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "Payments for Repurchase of Common Stock", "negatedLabel": "Repurchase of shares" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfDividendsCommonStock": { "auth_ref": [ "r64" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.", "label": "Payments of Ordinary Dividends, Common Stock", "negatedLabel": "Dividends paid to Class A common stock shareholders" } } }, "localname": "PaymentsOfDividendsCommonStock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r10" ], "lang": { "en-US": { "role": { "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred Stock, Par or Stated Value Per Share", "verboseLabel": "Preferred stock, par value" } } }, "localname": "PreferredStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r10" ], "lang": { "en-US": { "role": { "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.", "label": "Preferred Stock, Shares Authorized", "verboseLabel": "Preferred stock, shares authorized" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesIssued": { "auth_ref": [ "r10" ], "lang": { "en-US": { "role": { "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.", "label": "Preferred Stock, Shares Issued", "verboseLabel": "Preferred stock, shares issued" } } }, "localname": "PreferredStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r10" ], "lang": { "en-US": { "role": { "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.", "label": "Preferred Stock, Shares Outstanding", "verboseLabel": "Preferred stock, shares outstanding" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r10" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Preferred Stock, Value, Issued", "terseLabel": "Preferred stock, $0.01 par value, 10,000 shares authorized, none issued and outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "auth_ref": [ "r3", "r22", "r23" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 4.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 in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other current assets" } } }, "localname": "PrepaidExpenseAndOtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PriorPeriodReclassificationAdjustment": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The amount of a reclassification adjustment made to prior period financial statement amounts.", "label": "Prior Period Reclassification Adjustment", "terseLabel": "Adjustments to prior periods" } } }, "localname": "PriorPeriodReclassificationAdjustment", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_PriorPeriodReclassificationAdjustmentDescription": { "auth_ref": [ "r0" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for reclassifications that affects the comparability of the financial statements.", "label": "Reclassification, Policy [Policy Text Block]", "terseLabel": "Reclassifications" } } }, "localname": "PriorPeriodReclassificationAdjustmentDescription", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ProceedsFromSaleOfProductiveAssets": { "auth_ref": [ "r63" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.", "label": "Proceeds from Sale of Productive Assets", "terseLabel": "Proceeds from sale of assets" } } }, "localname": "ProceedsFromSaleOfProductiveAssets", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductAndServiceOtherMember": { "auth_ref": [ "r156" ], "lang": { "en-US": { "role": { "documentation": "Article or substance produced by nature, labor or machinery and act of providing assistance, classified as other.", "label": "Product And Service Other [Member]", "terseLabel": "Field service and other revenue" } } }, "localname": "ProductAndServiceOtherMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "domainItemType" }, "us-gaap_ProductMember": { "auth_ref": [ "r156" ], "lang": { "en-US": { "role": { "documentation": "Article or substance produced by nature, labor or machinery.", "label": "Product [Member]", "terseLabel": "Product revenue" } } }, "localname": "ProductMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "domainItemType" }, "us-gaap_ProfitLoss": { "auth_ref": [ "r49", "r51", "r65", "r111", "r112", "r165", "r168", "r170", "r173", "r174" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": 1.0 }, "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "totalLabel": "Net income", "verboseLabel": "Net income" } } }, "localname": "ProfitLoss", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Property and Equipment, net" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r26", "r134" ], "lang": { "en-US": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Property, Plant and Equipment, Type [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r135" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, accounting policies and methodology, roll forwards, depreciation, depletion and amortization expense, including composite depreciation, accumulated depreciation, depletion and amortization expense, useful lives and method used, income statement disclosures, assets held for sale and public utility disclosures.", "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "Property and Equipment, net" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNet" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r25", "r132" ], "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", "verboseLabel": "Gross property and equipment" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Property, Plant and Equipment [Line Items]" } } }, "localname": "PropertyPlantAndEquipmentLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r6", "r7", "r134", "r209" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net", "verboseLabel": "Total property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r6", "r134" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of property and equipment net" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r6", "r132" ], "lang": { "en-US": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Property Plant And Equipment Type [Domain]", "terseLabel": "Property, Plant and Equipment, Type [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r57", "r123" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Provision for Doubtful Accounts", "terseLabel": "Provision for bad debts", "verboseLabel": "Expense (recovery)" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accounts Receivable and Allowance for Credit Losses" } } }, "localname": "ReceivablesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The number of positions eliminated during the period as a result of restructuring activities.", "label": "Restructuring and Related Cost, Number of Positions Eliminated" } } }, "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminated", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails", "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "integerItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r14", "r149", "r206" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Retained Earnings" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Revenue" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "auth_ref": [ "r153", "r154" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.", "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Total revenues" } } }, "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerMember": { "auth_ref": [ "r102" ], "lang": { "en-US": { "role": { "documentation": "Revenue from satisfaction of performance obligation by transferring promised product and service to customer, when it serves as benchmark in concentration of risk calculation.", "label": "Revenue From Contract With Customer [Member]", "terseLabel": "Total revenues" } } }, "localname": "RevenueFromContractWithCustomerMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r157" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Revenue from Contract with Customer [Text Block]", "verboseLabel": "Revenue" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenue" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenuesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Revenues [Abstract]", "terseLabel": "Revenues" } } }, "localname": "RevenuesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "stringItemType" }, "us-gaap_RevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.", "label": "Revolving Credit Facility [Member]", "terseLabel": "ABL Credit Facility" } } }, "localname": "RevolvingCreditFacilityMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RisksAndUncertaintiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Concentrations, Risks and Uncertainties" } } }, "localname": "RisksAndUncertaintiesAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.", "label": "Sale Of Stock Name Of Transaction [Domain]", "terseLabel": "Sale of Stock [Domain]" } } }, "localname": "SaleOfStockNameOfTransactionDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock": { "auth_ref": [ "r117", "r126" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of allowance for credit loss of financing receivable, classified as current.", "label": "Financing Receivable, Current, Allowance for Credit Loss [Table Text Block]", "terseLabel": "Schedule of rollforward of allowance for credit losses" } } }, "localname": "ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r91" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Summary of basic and diluted earnings per share" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareDilutedByCommonClassTable": { "auth_ref": [ "r60", "r84", "r86", "r87", "r90", "r92" ], "lang": { "en-US": { "role": { "documentation": "Complete disclosure pertaining to an entity's diluted earnings per share.", "label": "Schedule of Earnings Per Share, Diluted, by Common Class, Including Two Class Method [Table]" } } }, "localname": "ScheduleOfEarningsPerShareDilutedByCommonClassTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r5", "r19", "r20", "r21" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Schedule of Inventory, Current [Table Text Block]", "terseLabel": "Summary of inventories" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureInventoriesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r26", "r134" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r61", "r127" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, General and Administrative Expense", "terseLabel": "Selling, general and administrative expenses" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_SeveranceCosts1": { "auth_ref": [ "r69", "r136", "r137", "r138" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome": { "order": 3.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of expenses for special or contractual termination benefits provided to current employees involuntarily terminated under a benefit arrangement associated exit or disposal activities pursuant to an authorized plan. Excludes expenses related to one-time termination benefits, a discontinued operation or an asset retirement obligation.", "label": "Severance Costs", "terseLabel": "Severance expenses" } } }, "localname": "SeveranceCosts1", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r68" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Compensation", "verboseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharesOutstanding": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.", "label": "Shares, Outstanding", "periodEndLabel": "Balance at the end of the period (shares)", "periodStartLabel": "Balance at the beginning of the period (shares)" } } }, "localname": "SharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StatementClassOfStockAxis": { "auth_ref": [ "r9", "r10", "r11", "r144" ], "lang": { "en-US": { "role": { "documentation": "Information by the different classes of stock of the entity.", "label": "Class of Stock [Axis]" } } }, "localname": "StatementClassOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails", "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails", "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r35", "r144" ], "lang": { "en-US": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "CONSOLIDATED BALANCE SHEETS" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" } } }, "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [], "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/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesConversionOfUnits": { "auth_ref": [ "r10", "r11", "r144", "r145", "r149" ], "lang": { "en-US": { "role": { "documentation": "The number of shares issued during the period upon the conversion of units. An example of a convertible unit is an umbrella partnership real estate investment trust unit (UPREIT unit).", "label": "Stock Issued During Period, Shares, Conversion of Units", "terseLabel": "Effect of CW Unit redemptions (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesConversionOfUnits", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "auth_ref": [ "r10", "r11", "r144", "r149" ], "lang": { "en-US": { "role": { "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).", "label": "Stock Issued During Period, Shares, Share-based Compensation, Net of Forfeitures", "terseLabel": "Equity award vestings (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueConversionOfUnits": { "auth_ref": [ "r35", "r144", "r149" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value of stock issued during the period upon the conversion of units. An example of a convertible unit is an umbrella partnership real estate investment trust unit (UPREIT unit).", "label": "Stock Issued During Period, Value, Conversion of Units", "terseLabel": "Effect of CW Unit redemptions" } } }, "localname": "StockIssuedDuringPeriodValueConversionOfUnits", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": { "auth_ref": [ "r10", "r11", "r149", "r158", "r159" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Stock Issued During Period, Value, Share-based Compensation, Net of Forfeitures", "terseLabel": "Equity award vestings" } } }, "localname": "StockIssuedDuringPeriodValueShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r11", "r15", "r16", "r119" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "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", "totalLabel": "Total stockholders' equity attributable to Cactus Inc." } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Stockholders' Equity Attributable to Parent [Abstract]", "terseLabel": "Stockholders' equity" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest": { "auth_ref": [ "r163", "r164", "r172" ], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of stockholders' equity (deficit), net of receivables from officers, directors, owners, and affiliates of the entity, attributable to both the parent and noncontrolling interests. Amount excludes temporary equity. Alternate caption for the concept is permanent equity.", "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest", "periodEndLabel": "Balance at the end of the period", "periodStartLabel": "Balance at the beginning of the period", "totalLabel": "Total stockholders' equity" } } }, "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r150" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Equity" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquity" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsequentEventLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.", "label": "Subsequent Event [Line Items]" } } }, "localname": "SubsequentEventLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event [Member]", "terseLabel": "Subsequent event" } } }, "localname": "SubsequentEventMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventTable": { "auth_ref": [ "r190" ], "lang": { "en-US": { "role": { "documentation": "Discloses pertinent information about one or more significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued.", "label": "Subsequent Event [Table]" } } }, "localname": "SubsequentEventTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeAxis": { "auth_ref": [ "r190" ], "lang": { "en-US": { "role": { "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Axis]" } } }, "localname": "SubsequentEventTypeAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeDomain": { "auth_ref": [ "r190" ], "lang": { "en-US": { "role": { "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Domain]", "terseLabel": "Subsequent Event Type [Domain]" } } }, "localname": "SubsequentEventTypeDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Subsequent Events" } } }, "localname": "SubsequentEventsAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventsTextBlock": { "auth_ref": [ "r191" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.", "label": "Subsequent Events [Text Block]", "terseLabel": "Subsequent Events" } } }, "localname": "SubsequentEventsTextBlock", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureSubsequentEvents" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Different names of stock transactions and the different attributes of each transaction.", "label": "Subsidiary or Equity Method Investee, Sale of Stock by Subsidiary or Equity Investee [Table]", "terseLabel": "Equity" } } }, "localname": "SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsidiarySaleOfStockAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by type of sale of the entity's stock.", "label": "Sale of Stock [Axis]" } } }, "localname": "SubsidiarySaleOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsidiarySaleOfStockLineItems": { "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": "Subsidiary, Sale of Stock [Line Items]", "terseLabel": "Equity" } } }, "localname": "SubsidiarySaleOfStockLineItems", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Supplemental Disclosures of Cash Flow Information" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_SupplierConcentrationRiskMember": { "auth_ref": [ "r101" ], "lang": { "en-US": { "role": { "documentation": "Reflects the percentage that purchases in the period from one or more significant suppliers is to cost of goods or services, as defined by the entity, such as total cost of sales or services, product line cost of sales or services, segment cost of sales or services. Risk is the materially adverse effects of loss of a material supplier or a supplier of critically needed goods or services.", "label": "Supplier Concentration Risk [Member]", "terseLabel": "Supplier concentration" } } }, "localname": "SupplierConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_UnbilledReceivablesCurrent": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.", "label": "Unbilled Receivables, Current", "terseLabel": "Unbilled revenue" } } }, "localname": "UnbilledReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r96", "r97", "r98", "r99", "r105", "r106", "r107" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "verboseLabel": "Use of Estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]", "terseLabel": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r83", "r90" ], "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", "terseLabel": "Weighted average Class A shares outstanding - diluted", "verboseLabel": "Weighted average Class A Shares Outstanding - diluted (2)" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesIssuedBasic": { "auth_ref": [ "r81", "r82", "r91" ], "lang": { "en-US": { "role": { "documentation": "This element represents the weighted average total number of shares issued throughout the period including the first (beginning balance outstanding) and last (ending balance outstanding) day of the period before considering any reductions (for instance, shares held in treasury) to arrive at the weighted average number of shares outstanding. Weighted average relates to the portion of time within a reporting period that common shares have been issued and outstanding to the total time in that period. Such concept is used in determining the weighted average number of shares outstanding for purposes of calculating earnings per share (basic).", "label": "Weighted Average Number of Shares Issued, Basic", "terseLabel": "Weighted average Class A Shares Outstanding - basic" } } }, "localname": "WeightedAverageNumberOfSharesIssuedBasic", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r81", "r90" ], "lang": { "en-US": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Weighted average Class A shares outstanding - basic" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]", "terseLabel": "Denominator:" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2019-01-31", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "whd_AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of adjustment to additional paid in capital due to outside basis difference to deferred tax asset.", "label": "Adjustment To Additional Paid In Capital Deferred Tax Asset", "terseLabel": "Adjustment to deferred tax asset from CW Unit redemptions" } } }, "localname": "AdjustmentToAdditionalPaidInCapitalDeferredTaxAsset", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "whd_AdjustmentsToAdditionalPaidInCapitalTaxReceivableAgreement": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase in additional paid in capital (APIC) resulting from the tax receivable agreement.", "label": "Adjustments to Additional Paid in Capital, Tax Receivable Agreement", "terseLabel": "Additional paid-in capital related to tax receivable agreement" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalTaxReceivableAgreement", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "whd_AllowanceForDoubtfulAccountsReceivableOther": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of others charged directly to allowance for doubtful of collection that were previously charged off.", "label": "Allowance for Doubtful Accounts Receivable, Other", "terseLabel": "Other" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableOther", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "whd_CactusIncMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Represents the information pertaining to Cactus Inc.", "label": "Cactus Inc [Member]", "terseLabel": "CACTUS INC" } } }, "localname": "CactusIncMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "whd_CactusWellheadLlcAndItsSubsidiariesMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Represents information pertaining to Cactus Wellhead, LLC.", "label": "Cactus Wellhead Llc And Its Subsidiaries [Member]", "terseLabel": "Cactus LLC" } } }, "localname": "CactusWellheadLlcAndItsSubsidiariesMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails", "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "whd_CommonUnitsRedeemed": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Number of CW units redeemed during period.", "label": "Common Units Redeemed", "terseLabel": "CW Unit redemptions" } } }, "localname": "CommonUnitsRedeemed", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "sharesItemType" }, "whd_ComputerAndSoftwareMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Represents the information pertaining to Computer and Software.", "label": "Computer And Software [Member]", "terseLabel": "Computers and software" } } }, "localname": "ComputerAndSoftwareMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "whd_ConcentrationRiskNumberOfCustomers": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The number of customers with concentration risk.", "label": "Concentration Risk, Number of Customers", "terseLabel": "Number of Customers" } } }, "localname": "ConcentrationRiskNumberOfCustomers", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "integerItemType" }, "whd_CwUnitHoldersOtherThanCactusIncMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "CW Unit Holders other than Cactus Inc [Member]", "label": "Cw Unit Holders Other Than Cactus Inc [Member]", "terseLabel": "CW Unit Holders other than Cactus, Inc." } } }, "localname": "CwUnitHoldersOtherThanCactusIncMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "whd_CwUnitsRedeemedForClassCommonStockMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "CW Units Redeemed For Class A Common Stock [Member]", "label": "Cw Units Redeemed For Class Common Stock [Member]", "terseLabel": "CW Units Redeemed For Class A Common Stock [Member]" } } }, "localname": "CwUnitsRedeemedForClassCommonStockMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "whd_DocumentAndEntityInformationAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Document and Entity Information" } } }, "localname": "DocumentAndEntityInformationAbstract", "nsuri": "http://cactuswellhead.com/20200430", "xbrltype": "stringItemType" }, "whd_EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The effective income tax rate used in the calculation of income attributable to noncontrolling interest included in if-converted method of EPS calculation.", "label": "Effective Income Tax Rate Used For Noncontrolling Interest Income", "terseLabel": "Corporate effective interest rate, if-converted method" } } }, "localname": "EffectiveIncomeTaxRateUsedForNoncontrollingInterestIncome", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "percentItemType" }, "whd_FinanceLeaseRightOfUseAssetMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Asset underlying finance leases.", "label": "Finance Lease Right Of Use Asset [Member]", "terseLabel": "Finance lease right-of-use asset" } } }, "localname": "FinanceLeaseRightOfUseAssetMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "whd_IncomeLossAttributableToNoncontrollingInterestAfterTax": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of income after tax attributable to non-controlling interest.", "label": "Income Loss Attributable To Noncontrolling Interest After Tax", "terseLabel": "After-tax income attributable to non-controlling interest" } } }, "localname": "IncomeLossAttributableToNoncontrollingInterestAfterTax", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "monetaryItemType" }, "whd_LondonInterbankOfferedRateOneMonthMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Interest rate at which a bank borrows funds from other banks in the London interbank market over one month.", "label": "London Interbank Offered Rate One Month [Member]", "terseLabel": "One-month LIBOR" } } }, "localname": "LondonInterbankOfferedRateOneMonthMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "whd_LondonInterbankOfferedRateThreeMonthMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Interest rate at which a bank borrows funds from other banks in the London interbank market over three months.", "label": "London Interbank Offered Rate Three Month [Member]", "terseLabel": "Three-month LIBOR" } } }, "localname": "LondonInterbankOfferedRateThreeMonthMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "whd_LowOilPricesAndCoronavirusCovid19Member": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Low Oil Prices And The Coronavirus (Covid-19) [Member]", "label": "Low Oil Prices And Coronavirus Covid19 [Member]", "terseLabel": "Low Oil Prices And The Coronavirus (COVID-19) [Member]" } } }, "localname": "LowOilPricesAndCoronavirusCovid19Member", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails", "http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails" ], "xbrltype": "domainItemType" }, "whd_NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterest": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of net income (loss) for the period including the portion attributable to the redeemable non-controlling interest.", "label": "Net Income Loss Including Portion Attributable To Redeemable Noncontrolling Interest", "terseLabel": "Net income attributable to Cactus Inc. - diluted (1)" } } }, "localname": "NetIncomeLossIncludingPortionAttributableToRedeemableNoncontrollingInterest", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "monetaryItemType" }, "whd_OrganizationAndNatureOfOperationsLineItems": { "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": "Organization and Nature of Operations [Line Items]", "verboseLabel": "Organization and Nature of Operations" } } }, "localname": "OrganizationAndNatureOfOperationsLineItems", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails" ], "xbrltype": "stringItemType" }, "whd_OrganizationAndNatureOfOperationsTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "A table or schedule providing information pertaining to organization and nature of operations.", "label": "Organization and Nature of Operations [Table]" } } }, "localname": "OrganizationAndNatureOfOperationsTable", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails" ], "xbrltype": "stringItemType" }, "whd_PaymentsForCapitalExpenditures": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow from payments of capital expenditure.", "label": "Payments For Capital expenditures", "negatedLabel": "Capital expenditures and other" } } }, "localname": "PaymentsForCapitalExpenditures", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "whd_PreparationOfInterimFinancialStatementsAndOtherItemsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "No definition available.", "label": "Preparation Of Interim Financial Statements And Other Items" } } }, "localname": "PreparationOfInterimFinancialStatementsAndOtherItemsAbstract", "nsuri": "http://cactuswellhead.com/20200430", "xbrltype": "stringItemType" }, "whd_PropertyAndEquipmentAcquiredUnderFinanceLeases": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Property And Equipment Acquired Under Finance Leases", "label": "Property And Equipment Acquired Under Finance Leases", "terseLabel": "Property and equipment acquired under finance leases" } } }, "localname": "PropertyAndEquipmentAcquiredUnderFinanceLeases", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "whd_PropertyPlantAndEquipmentNetBeforeConstructionInProgress": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business, not including construction in progress.", "label": "Property Plant And Equipment Net Before Construction In Progress", "terseLabel": "Net property and equipment" } } }, "localname": "PropertyPlantAndEquipmentNetBeforeConstructionInProgress", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails" ], "xbrltype": "monetaryItemType" }, "whd_ReductionToCompensation": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Reduction To Compensation", "label": "Reduction To Compensation" } } }, "localname": "ReductionToCompensation", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "percentItemType" }, "whd_ReductionToSalary": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Reduction To Salary", "label": "Reduction To Salary" } } }, "localname": "ReductionToSalary", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "percentItemType" }, "whd_RentalRevenueMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Represents the rental revenue.", "label": "Rental Revenue [Member]", "terseLabel": "Rental revenue" } } }, "localname": "RentalRevenueMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails", "http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome" ], "xbrltype": "domainItemType" }, "whd_RevenueAsPercentage": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Revenue as a percentage", "label": "Revenue As A Percentage", "terseLabel": "Revenue as a percentage" } } }, "localname": "RevenueAsPercentage", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails" ], "xbrltype": "percentItemType" }, "whd_SecondaryOfferingMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Secondary offering of stock by certain Selling Stockholders of the Company.", "label": "Secondary Offering [Member]", "terseLabel": "March 2019 Secondary Offering" } } }, "localname": "SecondaryOfferingMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "domainItemType" }, "whd_SharesOutstandingPerClassAsPercentOfTotal": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Amount of shares outstanding in the class of stock as a percentage of the total shares outstanding of all classes of stock.", "label": "Shares Outstanding Per Class As Percent Of Total" } } }, "localname": "SharesOutstandingPerClassAsPercentOfTotal", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails" ], "xbrltype": "percentItemType" }, "whd_TaxReceivableAgreementDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "n/a", "label": "Tax Receivable Agreement" } } }, "localname": "TaxReceivableAgreementDisclosureAbstract", "nsuri": "http://cactuswellhead.com/20200430", "xbrltype": "stringItemType" }, "whd_TaxReceivableAgreementDisclosureTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for the tax receivable agreement.", "label": "Tax Receivable Agreement Disclosure [Text Block]", "terseLabel": "Tax Receivable Agreement" } } }, "localname": "TaxReceivableAgreementDisclosureTextBlock", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreement" ], "xbrltype": "textBlockItemType" }, "whd_TaxReceivableAgreementLiabilityCurrent": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of liability under tax receivable agreement classified as current.", "label": "Tax Receivable Agreement Liability Current", "terseLabel": "Current portion of liability related to tax receivable agreement" } } }, "localname": "TaxReceivableAgreementLiabilityCurrent", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails", "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "whd_TaxReceivableAgreementLiabilityNonCurrent": { "auth_ref": [], "calculation": { "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of liability under tax receivable agreement classified as non current.", "label": "Tax Receivable Agreement, Liability Non Current", "terseLabel": "Liability related to tax receivable agreement, net of current portion" } } }, "localname": "TaxReceivableAgreementLiabilityNonCurrent", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "whd_TaxSavingsBenefitRetainedAsPercent": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Per tax receivable agreement, the amount of the tax savings benefit to be retained by the entity.", "label": "Tax Savings Benefit Retained As Percent", "terseLabel": "Tax savings benefit recorded as APIC (as a percent)" } } }, "localname": "TaxSavingsBenefitRetainedAsPercent", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails" ], "xbrltype": "percentItemType" }, "whd_TaxSavingsPayableToTraHoldersAsPercent": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Per tax receivable agreement, the percentage of savings in federal, state and local income tax or franchise tax that the entity realizes or is deemed to realize in certain circumstances.", "label": "Tax Savings Payable To TRA Holders As Percent", "terseLabel": "Tax savings payable to TRA Holders (as a percent)" } } }, "localname": "TaxSavingsPayableToTraHoldersAsPercent", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails" ], "xbrltype": "percentItemType" }, "whd_UnitedStatesWorkforceMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "United States Workforce [Member]", "label": "United States Workforce [Member]", "terseLabel": "United States Workforce [Member]" } } }, "localname": "UnitedStatesWorkforceMember", "nsuri": "http://cactuswellhead.com/20200430", "presentation": [ "http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails" ], "xbrltype": "domainItemType" } }, "unitCount": 6 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=6359566&loc=d3e326-107755" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=118951113&loc=d3e6676-107765" }, "r10": { "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=6877327&loc=d3e13212-122682" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592" }, "r105": { "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" }, "r106": { "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" }, "r107": { "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" }, "r108": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r11": { "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=6877327&loc=d3e13212-122682" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8933-108599" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9031-108599" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=118952595&loc=d3e4647-111522" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=118952595&loc=d3e4428-111522" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=118952595&loc=d3e4531-111522" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=118936363&loc=SL6953423-111524" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=118936363&loc=d3e5074-111524" }, "r119": { "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=27010918&loc=d3e74512-122707" }, "r12": { "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=6877327&loc=d3e13212-122682" }, "r120": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/subtopic&trid=2196772" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=118955202&loc=SL82895884-210446" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=119407570&loc=SL82919249-210447" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=119407570&loc=SL82919249-210447" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=119407570&loc=SL82919249-210447" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=119407570&loc=SL82919249-210447" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=119407570&loc=SL82919249-210447" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=68048583&loc=d3e3636-108311" }, "r128": { "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" }, "r129": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "http://asc.fasb.org/topic&trid=2126998" }, "r13": { "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=6877327&loc=d3e13212-122682" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=77989000&loc=SL49117168-202975" }, "r132": { "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" }, "r133": { "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" }, "r134": { "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" }, "r135": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "http://asc.fasb.org/topic&trid=2155823" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.3)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(b))", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747" }, "r139": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r14": { "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=6877327&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=118942415&loc=d3e14326-108349" }, "r141": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=109500613&loc=SL6031897-161870" }, "r143": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "470", "URI": "http://asc.fasb.org/topic&trid=2208564" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21463-112644" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21475-112644" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21506-112644" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21521-112644" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21538-112644" }, "r149": { "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=27012166&loc=d3e187085-122770" }, "r15": { "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=6877327&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=118944033&loc=SL49130531-203044" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=118944033&loc=SL49130532-203044" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=118956577&loc=SL49130543-203045" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=118956577&loc=SL49130545-203045" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=118956577&loc=SL49130549-203045" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=118944142&loc=SL49130690-203046-203046" }, "r157": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=116856206&loc=d3e5047-113901" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=116856206&loc=d3e5070-113901" }, "r16": { "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=6877327&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116821951&loc=d3e31931-109318" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=109238882&loc=d3e38679-109324" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4568447-111683" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4568740-111683" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569616-111683" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569643-111683" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4613674-111683" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r17": { "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=6877327&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "4I", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116874947&loc=SL4590271-111686" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "4J", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116874947&loc=SL4591551-111686" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "4K", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116874947&loc=SL4591552-111686" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=118260190&loc=d3e13531-108611" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=118260190&loc=d3e13537-108611" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=118260190&loc=d3e13537-108611" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=98513438&loc=d3e33268-110906" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b,c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=114775744&loc=d3e28541-108399" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=114775744&loc=d3e28551-108399" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=114775744&loc=d3e28555-108399" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918627-209977" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918627-209977" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918643-209977" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=119202524&loc=SL77919398-209981" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864" }, "r19": { "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=6877327&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662" }, "r191": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "855", "URI": "http://asc.fasb.org/topic&trid=2122774" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=68072869&loc=d3e41242-110953" }, "r193": { "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=6876686&loc=d3e534808-122878" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(16))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r196": { "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=6876686&loc=d3e534808-122878" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.15(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r199": { "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=116637391&loc=SL114874048-224260" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=118951113&loc=d3e6676-107765" }, "r20": { "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=6877327&loc=d3e13212-122682" }, "r200": { "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=116637391&loc=SL114874048-224260" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=116637391&loc=SL114874048-224260" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "405", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6957935&loc=d3e64057-112817" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "470", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=75038535&loc=d3e64711-112823" }, "r204": { "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=119400593&loc=d3e572229-122910" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(16))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=119400593&loc=d3e572229-122910" }, "r206": { "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=119400593&loc=d3e572229-122910" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(24))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=119400593&loc=d3e572229-122910" }, "r208": { "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=119400593&loc=d3e572229-122910" }, "r209": { "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=119400593&loc=d3e572229-122910" }, "r21": { "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=6877327&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=119400593&loc=d3e572229-122910" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.15(a))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=119400593&loc=d3e572229-122910" }, "r212": { "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=116637232&loc=SL114874131-224263" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(19))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=116637232&loc=SL114874131-224263" }, "r214": { "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=116637232&loc=SL114874131-224263" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=117419784&loc=SL117783719-158441" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=99380617&loc=SL75241803-196195" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 4))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=6590653&loc=d3e638233-123024" }, "r219": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r220": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "g" }, "r221": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-13" }, "r222": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1-" }, "r223": { "Name": "Regulation 12B", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r224": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r24": { "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=6877327&loc=d3e13212-122682" }, "r25": { "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=6877327&loc=d3e13212-122682" }, "r26": { "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=6877327&loc=d3e13212-122682" }, "r27": { "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=6877327&loc=d3e13212-122682" }, "r28": { "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=6877327&loc=d3e13212-122682" }, "r29": { "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=6877327&loc=d3e13212-122682" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=118951113&loc=d3e6676-107765" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r31": { "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=6877327&loc=d3e13212-122682" }, "r32": { "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=6877327&loc=d3e13212-122682" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r35": { "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=6877327&loc=d3e13212-122682" }, "r36": { "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=6877327&loc=d3e13212-122682" }, "r37": { "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=6877327&loc=d3e13212-122682" }, "r38": { "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=6877327&loc=d3e13212-122682" }, "r39": { "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=6877327&loc=d3e13212-122682" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=118951113&loc=d3e6801-107765" }, "r40": { "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=6877327&loc=d3e13212-122682" }, "r41": { "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=6877327&loc=d3e13212-122682" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226024-175313" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669646-108580" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669646-108580" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=d3e637-108580" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=d3e681-108580" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669686-108580" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "17B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL34724394-108580" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669619-108580" }, "r5": { "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" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669619-108580" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669625-108580" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=SL7669625-108580" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=118930883&loc=d3e557-108580" }, "r54": { "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=116634182&loc=SL114868664-224227" }, "r55": { "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=116634182&loc=SL114868664-224227" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(21))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=116634182&loc=SL114868664-224227" }, "r57": { "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=116634182&loc=SL114868664-224227" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.19)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=116634182&loc=SL114868664-224227" }, "r59": { "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=116634182&loc=SL114868664-224227" }, "r6": { "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=6877327&loc=d3e13212-122682" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.21)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=116634182&loc=SL114868664-224227" }, "r61": { "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=116634182&loc=SL114868664-224227" }, "r62": { "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=116634182&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3179-108585" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3291-108585" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3000-108585" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3521-108585" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3536-108585" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3602-108585" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3602-108585" }, "r7": { "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=6877327&loc=d3e13212-122682" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3602-108585" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=118932676&loc=d3e3044-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4304-108586" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4313-108586" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4332-108586" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=SL98516268-108586" }, "r76": { "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=26873400&loc=d3e23780-122690" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08.(e),(f))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690" }, "r79": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1448-109256" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e2646-109256" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1505-109256" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1252-109256" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1500-109256" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1278-109256" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1311-109256" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=SL5780133-109256" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117326831&loc=d3e1337-109256" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(27))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=117327953&loc=d3e4984-109258" }, "r93": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055" }, "r96": { "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" }, "r97": { "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" }, "r98": { "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" }, "r99": { "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" } }, "version": "2.1" } XML 19 R29.htm IDEA: XBRL DOCUMENT v3.20.1
Accounts Receivable and Allowance for Credit Losses (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2020
Mar. 31, 2019
Dec. 31, 2019
Accounts Receivable      
Unbilled revenue $ 21,500   $ 23,800
Allowance for credit losses      
Balance at Beginning of Period 837 $ 576  
Expense (recovery) 625    
Write off (32)    
Other   2  
Balance at End of Period $ 1,430 $ 578  
XML 20 R21.htm IDEA: XBRL DOCUMENT v3.20.1
Preparation of Interim Financial Statements and Other Items (Policies)
3 Months Ended
Mar. 31, 2020
Preparation Of Interim Financial Statements And Other Items  
Basis of Presentation

Basis of Presentation

The financial statements presented in this report represent the consolidation of Cactus Inc. (“Cactus Inc.”) and its subsidiaries (“the Company”), including Cactus Wellhead, LLC (“Cactus LLC”). Cactus Inc. is a holding company whose only material asset is an equity interest consisting of units representing limited liability company interests in Cactus LLC (“CW Units”). Cactus Inc. is the sole managing member of Cactus LLC and operates and controls all of the business and affairs of Cactus LLC and conducts its business through Cactus LLC and its subsidiaries. As a result, Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.’s Class A common stock, par value $0.01 per share (“Class A common stock”). Except as otherwise indicated or required by the context, all references to “Cactus,” “we,” “us” and “our” refer to Cactus Inc. and its consolidated subsidiaries.

The unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (“GAAP”) for interim financial information. Accordingly, these consolidated financial statements do not include all information or notes required by generally accepted accounting principles for annual financial statements and should be read together with our Annual Report on Form 10-K for the year ended December 31, 2019.

The consolidated financial statements include all adjustments, which are of a normal recurring nature, unless otherwise disclosed, necessary for a fair statement of the consolidated financial statements for the interim periods. The results of operations for any interim period are not necessarily indicative of the results to be expected for the full year.

Use of Estimates

Use of Estimates

In preparing our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.

Recent Accounting Pronouncements

Recent Accounting Pronouncements

Standards Adopted

Effective January 1, 2020, we adopted Financial Accounting Standards Board (“FASB”) Accounting Standards Update (“ASU”) 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance changed the measurement of credit losses on financial assets measured at amortized cost, including but not limited to trade receivables. The new guidance replaced the prior methodology for recognizing credit losses when it is probable that a loss has been incurred with an expected loss model that requires consideration of a broader range of information to estimate expected credit losses over the lifetime of an asset. The allowance for credit losses under the new guidance represents the portion of the asset’s amortized cost basis that we do not expect to collect over the asset’s contractual life, considering past events, current conditions and reasonable and

supportable forecasts of future economic conditions. Adoption of the standard did not impact our consolidated financial statements other than certain expanded disclosures. See further discussion and expanded disclosures at Note 3.

We also adopted FASB ASU 2017-04, Intangibles – Goodwill and Other (Topic 350) effective January 1, 2020. The new standard simplified the accounting for goodwill impairment by eliminating Step 2 of the current goodwill impairment test. Under the new standard, an entity performs its goodwill impairment test by comparing the fair value of a reporting unit with its carrying amount and recognizes an impairment charge for the amount by which the carrying amount exceeds the reporting unit’s fair value. The loss recognized should not exceed the total amount of goodwill allocated to that reporting unit. Adoption of this standard did not impact our consolidated financial statements.

Reclassifications

Reclassifications

Certain prior period amounts have been reclassified to conform to the current period presentation.

XML 21 R25.htm IDEA: XBRL DOCUMENT v3.20.1
Revenue (Tables)
3 Months Ended
Mar. 31, 2020
Revenue  
Revenues disaggregated by category

Three Months Ended March 31, 

    

2020

    

2019

Product revenue

$

87,031

57

%

$

86,640

55

%

Rental revenue

36,163

23

%

38,497

24

%

Field service and other revenue

30,945

20

%

33,738

21

%

Total revenue

$

154,139

100

%

$

158,875

100

%

XML 22 R8.htm IDEA: XBRL DOCUMENT v3.20.1
CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2020
Mar. 31, 2019
Cash flows from operating activities    
Net income $ 33,098 $ 48,446
Reconciliation of net income to net cash provided by operating activities:    
Depreciation and amortization 10,980 8,881
Debt discount and deferred financing cost amortization 42 42
Stock-based compensation 1,973 1,676
Provision for bad debts 625  
Inventory obsolescence 1,353 224
Loss on disposal of assets 961 863
Deferred income taxes 4,848 (2,796)
Changes in operating assets and liabilities:    
Accounts receivable (8,244) (15,597)
Inventories 8,306 (8,875)
Prepaid expenses and other assets 1,497 2,156
Accounts payable (8,142) 192
Accrued expenses and other liabilities (2,136) (973)
Net cash provided by operating activities 45,161 34,239
Cash flows from investing activities    
Capital expenditures and other (9,441) (14,655)
Proceeds from sale of assets 1,103 808
Net cash used in investing activities (8,338) (13,847)
Cash flows from financing activities    
Payments on finance leases (1,764) (1,846)
Dividends paid to Class A common stock shareholders (4,281)  
Distributions to members (2,203) (235)
Repurchase of shares (1,356) (1,474)
Net cash used in financing activities (9,604) (3,555)
Effect of exchange rate changes on cash and cash equivalents 380 438
Net increase in cash and cash equivalents 27,599 17,275
Cash and cash equivalents    
Beginning of period 202,603 70,841
End of period 230,202 88,116
Supplemental Disclosures of Cash Flow Information    
Property and equipment acquired under finance leases 1,896 216
Property and equipment in payables $ 3,767 $ 3,643
XML 24 R4.htm IDEA: XBRL DOCUMENT v3.20.1
CONSOLIDATED STATEMENTS OF INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2020
Mar. 31, 2019
Revenues    
Total revenues $ 154,139 $ 158,875
Costs and expenses    
Selling, general and administrative expenses 13,662 12,668
Severance expenses 1,007  
Total costs and expenses 113,954 110,383
Income from operations 40,185 48,492
Interest income (expense), net 410 23
Other income (expense), net   (1,042)
Income before income taxes 40,595 47,473
Income tax expense 7,497 (973)
Net income 33,098 48,446
Less: net income attributable to non-controlling interest 14,115 21,639
Net income attributable to Cactus Inc. 18,983 26,807
Product revenue    
Revenues    
Total revenues 87,031 86,640
Costs and expenses    
Cost of revenue 56,135 53,018
Rental revenue    
Revenues    
Total revenues 36,163 38,497
Costs and expenses    
Cost of revenue 19,339 17,791
Field service and other revenue    
Revenues    
Total revenues 30,945 33,738
Costs and expenses    
Cost of revenue $ 23,811 $ 26,906
Class A Common Stock    
Costs and expenses    
Earnings per Class A share - basic $ 0.40 $ 0.69
Earnings per Class A share - diluted $ 0.40 $ 0.59
Weighted average Class A shares outstanding - basic 47,270 38,719
Weighted average Class A shares outstanding - diluted 75,395 75,246
XML 25 R20.htm IDEA: XBRL DOCUMENT v3.20.1
Subsequent Events
3 Months Ended
Mar. 31, 2020
Subsequent Events  
Subsequent Events

12. Subsequent Events

As a result of significant declines in sales activity, we notified 277 U.S. associates on March 31, 2020 that their position with the Company had been eliminated. Due to the fact that the outlook for our industry has continued to rapidly deteriorate, we reduced our U.S. workforce by an additional 212 associates in April.

XML 26 R24.htm IDEA: XBRL DOCUMENT v3.20.1
Property and Equipment, net (Tables)
3 Months Ended
Mar. 31, 2020
Property and Equipment, net  
Schedule of property and equipment net

March 31, 

December 31, 

    

2020

    

2019

Land

$

3,203

$

3,203

Buildings and improvements

 

21,812

 

21,655

Machinery and equipment

 

55,826

 

55,494

Vehicles under finance lease

24,936

24,275

Rental equipment

 

169,307

 

161,156

Furniture and fixtures

 

1,762

 

1,684

Computers and software

 

3,475

 

3,317

Gross property and equipment

 

280,321

 

270,784

Less: Accumulated depreciation

 

(130,853)

 

(123,397)

Net property and equipment

 

149,468

 

147,387

Construction in progress

 

13,403

 

14,361

Total property and equipment, net

$

162,871

$

161,748

XML 27 R28.htm IDEA: XBRL DOCUMENT v3.20.1
Concentrations Risks and Uncertainties (Details)
$ in Millions
1 Months Ended 3 Months Ended
Mar. 31, 2020
USD ($)
position
Mar. 31, 2020
USD ($)
position
customer
Mar. 31, 2019
USD ($)
customer
Dec. 31, 2019
USD ($)
Customer | Total revenues        
Concentrations, Risks and Uncertainties        
Number of Customers | customer   1 1  
Concentration of risk (as a percent)   10.00% 12.00%  
Supplier concentration | Purchases        
Concentrations, Risks and Uncertainties        
Concentration of risk (as a percent)   7.00% 20.00%  
Purchases from the vendor   $ 2.9 $ 12.7  
Accounts Payable $ 1.9 $ 1.9   $ 4.3
Low Oil Prices And The Coronavirus (COVID-19) [Member]        
Concentrations, Risks and Uncertainties        
Restructuring and Related Cost, Number of Positions Eliminated | position 277 277    
Low Oil Prices And The Coronavirus (COVID-19) [Member] | Chief Executive Officer [Member]        
Concentrations, Risks and Uncertainties        
Reduction To Salary 50.00%      
Low Oil Prices And The Coronavirus (COVID-19) [Member] | Executive officers | Maximum        
Concentrations, Risks and Uncertainties        
Reduction To Salary 50.00%      
Low Oil Prices And The Coronavirus (COVID-19) [Member] | Executive officers | Minimum        
Concentrations, Risks and Uncertainties        
Reduction To Salary 25.00%      
Low Oil Prices And The Coronavirus (COVID-19) [Member] | United States Workforce [Member] | Maximum        
Concentrations, Risks and Uncertainties        
Reduction To Salary 15.00%      
Low Oil Prices And The Coronavirus (COVID-19) [Member] | United States Workforce [Member] | Minimum        
Concentrations, Risks and Uncertainties        
Reduction To Salary 2.00%      
Low Oil Prices And The Coronavirus (COVID-19) [Member] | Board of Directors        
Concentrations, Risks and Uncertainties        
Reduction To Compensation 25.00%      
XML 28 whd-20200430x10q_htm.xml IDEA: XBRL DOCUMENT 0001699136 2018-02-01 2018-02-28 0001699136 srt:MinimumMember whd:UnitedStatesWorkforceMember whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 srt:MinimumMember srt:ExecutiveOfficerMember whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 srt:MaximumMember whd:UnitedStatesWorkforceMember whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 srt:MaximumMember srt:ExecutiveOfficerMember whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 srt:ChiefExecutiveOfficerMember whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 srt:DirectorMember whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 us-gaap:CommonClassAMember whd:CwUnitsRedeemedForClassCommonStockMember 2019-01-01 2019-03-31 0001699136 us-gaap:CommonClassAMember whd:CwUnitsRedeemedForClassCommonStockMember 2018-02-01 2019-03-31 0001699136 us-gaap:CommonClassAMember us-gaap:CommonStockMember 2020-01-01 2020-03-31 0001699136 us-gaap:CommonClassBMember us-gaap:CommonStockMember 2019-01-01 2019-03-31 0001699136 us-gaap:CommonClassAMember us-gaap:CommonStockMember 2019-01-01 2019-03-31 0001699136 us-gaap:RetainedEarningsMember 2020-03-31 0001699136 us-gaap:NoncontrollingInterestMember 2020-03-31 0001699136 us-gaap:AdditionalPaidInCapitalMember 2020-03-31 0001699136 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-03-31 0001699136 us-gaap:RetainedEarningsMember 2019-12-31 0001699136 us-gaap:NoncontrollingInterestMember 2019-12-31 0001699136 us-gaap:AdditionalPaidInCapitalMember 2019-12-31 0001699136 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-12-31 0001699136 us-gaap:RetainedEarningsMember 2019-03-31 0001699136 us-gaap:NoncontrollingInterestMember 2019-03-31 0001699136 us-gaap:AdditionalPaidInCapitalMember 2019-03-31 0001699136 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-03-31 0001699136 us-gaap:RetainedEarningsMember 2018-12-31 0001699136 us-gaap:NoncontrollingInterestMember 2018-12-31 0001699136 us-gaap:AdditionalPaidInCapitalMember 2018-12-31 0001699136 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-12-31 0001699136 us-gaap:CommonClassBMember us-gaap:CommonStockMember 2020-03-31 0001699136 us-gaap:CommonClassAMember us-gaap:CommonStockMember 2020-03-31 0001699136 us-gaap:CommonClassBMember us-gaap:CommonStockMember 2019-12-31 0001699136 us-gaap:CommonClassAMember us-gaap:CommonStockMember 2019-12-31 0001699136 us-gaap:CommonClassBMember us-gaap:CommonStockMember 2019-03-31 0001699136 us-gaap:CommonClassAMember us-gaap:CommonStockMember 2019-03-31 0001699136 us-gaap:CommonClassBMember us-gaap:CommonStockMember 2018-12-31 0001699136 us-gaap:CommonClassAMember us-gaap:CommonStockMember 2018-12-31 0001699136 us-gaap:SubsequentEventMember 2020-04-01 2020-04-30 0001699136 whd:LowOilPricesAndCoronavirusCovid19Member 2020-03-01 2020-03-31 0001699136 whd:LowOilPricesAndCoronavirusCovid19Member 2020-01-01 2020-03-31 0001699136 us-gaap:ConstructionInProgressMember 2020-03-31 0001699136 us-gaap:ConstructionInProgressMember 2019-12-31 0001699136 whd:FinanceLeaseRightOfUseAssetMember 2020-03-31 0001699136 whd:ComputerAndSoftwareMember 2020-03-31 0001699136 us-gaap:MachineryAndEquipmentMember 2020-03-31 0001699136 us-gaap:LandMember 2020-03-31 0001699136 us-gaap:FurnitureAndFixturesMember 2020-03-31 0001699136 us-gaap:EquipmentLeasedToOtherPartyMember 2020-03-31 0001699136 us-gaap:BuildingAndBuildingImprovementsMember 2020-03-31 0001699136 whd:FinanceLeaseRightOfUseAssetMember 2019-12-31 0001699136 whd:ComputerAndSoftwareMember 2019-12-31 0001699136 us-gaap:MachineryAndEquipmentMember 2019-12-31 0001699136 us-gaap:LandMember 2019-12-31 0001699136 us-gaap:FurnitureAndFixturesMember 2019-12-31 0001699136 us-gaap:EquipmentLeasedToOtherPartyMember 2019-12-31 0001699136 us-gaap:BuildingAndBuildingImprovementsMember 2019-12-31 0001699136 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-01-01 2020-03-31 0001699136 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-01-01 2019-03-31 0001699136 us-gaap:RevolvingCreditFacilityMember 2019-12-31 0001699136 whd:CactusWellheadLlcAndItsSubsidiariesMember us-gaap:RevolvingCreditFacilityMember 2018-08-21 0001699136 whd:CactusWellheadLlcAndItsSubsidiariesMember us-gaap:LetterOfCreditMember 2018-08-21 0001699136 us-gaap:RevolvingCreditFacilityMember 2020-03-31 0001699136 whd:CactusWellheadLlcAndItsSubsidiariesMember 2020-01-01 2020-03-31 0001699136 whd:CactusWellheadLlcAndItsSubsidiariesMember 2019-01-01 2019-12-31 0001699136 us-gaap:CommonClassBMember 2020-01-01 2020-03-31 0001699136 us-gaap:CommonClassBMember 2019-01-01 2019-03-31 0001699136 us-gaap:RetainedEarningsMember 2019-01-01 2019-03-31 0001699136 us-gaap:NoncontrollingInterestMember 2019-01-01 2019-03-31 0001699136 us-gaap:CommonClassAMember 2020-01-01 2020-03-31 0001699136 us-gaap:CommonClassAMember 2019-01-01 2019-03-31 0001699136 us-gaap:RetainedEarningsMember 2020-01-01 2020-03-31 0001699136 us-gaap:CommonClassAMember 2020-03-19 2020-03-19 0001699136 whd:CwUnitHoldersOtherThanCactusIncMember 2020-03-19 2020-03-19 0001699136 whd:CactusIncMember 2020-01-01 2020-03-31 0001699136 whd:CwUnitHoldersOtherThanCactusIncMember 2019-01-01 2019-03-31 0001699136 whd:SecondaryOfferingMember 2019-03-31 0001699136 whd:CactusWellheadLlcAndItsSubsidiariesMember us-gaap:RevolvingCreditFacilityMember 2018-08-21 2018-08-21 0001699136 whd:LondonInterbankOfferedRateThreeMonthMember 2020-01-01 2020-03-31 0001699136 whd:LondonInterbankOfferedRateOneMonthMember 2020-01-01 2020-03-31 0001699136 whd:LondonInterbankOfferedRateThreeMonthMember 2019-01-01 2019-12-31 0001699136 whd:LondonInterbankOfferedRateOneMonthMember 2019-01-01 2019-12-31 0001699136 whd:RentalRevenueMember 2020-01-01 2020-03-31 0001699136 us-gaap:ProductMember 2020-01-01 2020-03-31 0001699136 us-gaap:ProductAndServiceOtherMember 2020-01-01 2020-03-31 0001699136 whd:RentalRevenueMember 2019-01-01 2019-03-31 0001699136 us-gaap:ProductMember 2019-01-01 2019-03-31 0001699136 us-gaap:ProductAndServiceOtherMember 2019-01-01 2019-03-31 0001699136 us-gaap:RevenueFromContractWithCustomerMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-03-31 0001699136 us-gaap:CostOfGoodsProductLineMember us-gaap:SupplierConcentrationRiskMember 2020-01-01 2020-03-31 0001699136 us-gaap:RevenueFromContractWithCustomerMember us-gaap:CustomerConcentrationRiskMember 2019-01-01 2019-03-31 0001699136 us-gaap:CostOfGoodsProductLineMember us-gaap:SupplierConcentrationRiskMember 2019-01-01 2019-03-31 0001699136 us-gaap:CommonClassBMember 2020-03-31 0001699136 us-gaap:CommonClassAMember 2020-03-31 0001699136 us-gaap:CommonClassBMember 2019-12-31 0001699136 us-gaap:CommonClassAMember 2019-12-31 0001699136 us-gaap:CommonClassAMember 2020-01-30 2020-01-30 0001699136 2019-03-31 0001699136 2018-12-31 0001699136 us-gaap:NoncontrollingInterestMember 2020-01-01 2020-03-31 0001699136 us-gaap:AdditionalPaidInCapitalMember 2020-01-01 2020-03-31 0001699136 us-gaap:AdditionalPaidInCapitalMember 2019-01-01 2019-03-31 0001699136 2019-01-01 2019-03-31 0001699136 us-gaap:CostOfGoodsProductLineMember us-gaap:SupplierConcentrationRiskMember 2020-03-31 0001699136 us-gaap:CostOfGoodsProductLineMember us-gaap:SupplierConcentrationRiskMember 2019-12-31 0001699136 2020-03-31 0001699136 2019-12-31 0001699136 us-gaap:CommonClassBMember 2020-04-28 0001699136 us-gaap:CommonClassAMember 2020-04-28 0001699136 2020-01-01 2020-03-31 shares iso4217:USD iso4217:USD shares pure whd:position whd:customer 0 0 47159000 47398000 27958000 27958000 one-month LIBOR one-month LIBOR three-month LIBOR three-month LIBOR 0.015 0.015 0001699136 --12-31 2020 Q1 false 10-Q true 2020-03-31 false 001-38390 Cactus, Inc. DE 35-2586106 920 Memorial City Way, Suite 300 Houston TX 77024 713 626-8800 Class A Common Stock, par value $0.01 WHD NYSE Yes Yes Large Accelerated Filer false false false 47400617 27957699 230202000 202603000 1430000 837000 95236000 87865000 100301000 113371000 9535000 11044000 435274000 414883000 162871000 161748000 24872000 26561000 7824000 7824000 217916000 222545000 1338000 1403000 850095000 834964000 34476000 40957000 19275000 22067000 14630000 14630000 6498000 6735000 6535000 6737000 81414000 91126000 1511000 1348000 201902000 201902000 4033000 3910000 18809000 20283000 307669000 318569000 0.01 0.01 10000000 10000000 0 0 0.01 0.01 300000000 300000000 47398000 47159000 474000 472000 0.01 0.01 215000000 215000000 27958000 27958000 195381000 194456000 147670000 132990000 -1067000 -452000 342458000 327466000 199968000 188929000 542426000 516395000 850095000 834964000 87031000 86640000 36163000 38497000 30945000 33738000 154139000 158875000 56135000 53018000 19339000 17791000 23811000 26906000 13662000 12668000 1007000 113954000 110383000 40185000 48492000 410000 23000 -1042000 40595000 47473000 7497000 -973000 33098000 48446000 14115000 21639000 18983000 26807000 0.40 0.69 0.40 0.59 47270000 38719000 75395000 75246000 33098000 48446000 -1083000 270000 32015000 48716000 13647000 21786000 18368000 26930000 37654000 377000 37236000 126418000 51683000 -820000 184670000 362328000 14035000 488000 -14523000 235000 235000 8518000 85000 -8518000 43899000 -50000 -43934000 -8232000 -8232000 13580000 13580000 219000 2000 -1474000 -1472000 123000 147000 270000 1676000 1676000 26807000 21639000 48446000 46391000 464000 28718000 189902000 78490000 -259000 147764000 416361000 47159000 472000 27958000 194456000 132990000 -452000 188929000 516395000 2203000 2203000 -94000 -94000 239000 2000 -221000 -1138000 -1357000 -615000 -468000 -1083000 1240000 733000 1973000 0.09 4303000 4303000 18983000 14115000 33098000 47398000 474000 27958000 195381000 147670000 -1067000 199968000 542426000 33098000 48446000 10980000 8881000 42000 42000 1973000 1676000 625000 1353000 224000 -961000 -863000 -4848000 2796000 8244000 15597000 -8306000 8875000 -1497000 -2156000 -8142000 192000 -2136000 -973000 45161000 34239000 9441000 14655000 1103000 808000 -8338000 -13847000 1764000 1846000 4281000 2203000 235000 1356000 1474000 -9604000 -3555000 380000 438000 27599000 17275000 202603000 70841000 230202000 88116000 1896000 216000 3767000 3643000 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">1.   Preparation of Interim Financial Statements and Other Items</p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The financial statements presented in this report represent the consolidation of Cactus Inc. (“Cactus Inc.”) and its subsidiaries (“the Company”), including Cactus Wellhead, LLC (“Cactus LLC”). Cactus Inc. is a holding company whose only material asset is an equity interest consisting of units representing limited liability company interests in Cactus LLC (“CW Units”). Cactus Inc. is the sole managing member of Cactus LLC and operates and controls all of the business and affairs of Cactus LLC and conducts its business through Cactus LLC and its subsidiaries. As a result, Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.’s Class A common stock, par value $0.01 per share (“Class A common stock”). Except as otherwise indicated or required by the context, all references to “Cactus,” “we,” “us” and “our” refer to Cactus Inc. and its consolidated subsidiaries.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (“GAAP”) for interim financial information. Accordingly, these consolidated financial statements do not include all information or notes required by generally accepted accounting principles for annual financial statements and should be read together with our Annual Report on Form 10-K for the year ended December 31, 2019. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include all adjustments, which are of a normal recurring nature, unless otherwise disclosed, necessary for a fair statement of the consolidated financial statements for the interim periods. The results of operations for any interim period are not necessarily indicative of the results to be expected for the full year.</p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In preparing our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.</p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Reclassifications </span></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Certain prior period amounts have been reclassified to conform to the current period presentation. </p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Pronouncements</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Standards Adopted</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;">Effective January 1, 2020, we adopted Financial Accounting Standards Board (“FASB”) Accounting Standards Update (“ASU”) 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance changed the measurement of credit losses on financial assets measured at amortized cost, including but not limited to trade receivables. The new guidance replaced the prior methodology for recognizing credit losses when it is probable that a loss has been incurred with an expected loss model that requires consideration of a broader range of information to estimate expected credit losses over the lifetime of an asset. The allowance for credit losses under the new guidance represents the portion of the asset’s amortized cost basis that we do not expect to collect over the asset’s contractual life, considering past events, current conditions and reasonable and </p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 12pt 0pt;">supportable forecasts of future economic conditions. Adoption of the standard did not impact our consolidated financial statements other than certain expanded disclosures. See further discussion and expanded disclosures at Note 3.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We also adopted FASB ASU 2017-04, Intangibles – Goodwill and Other (Topic 350) effective January 1, 2020. The new standard simplified the accounting for goodwill impairment by eliminating Step 2 of the current goodwill impairment test. Under the new standard, an entity performs its goodwill impairment test by comparing the fair value of a reporting unit with its carrying amount and recognizes an impairment charge for the amount by which the carrying amount exceeds the reporting unit’s fair value. The loss recognized should not exceed the total amount of goodwill allocated to that reporting unit. Adoption of this standard did not impact our consolidated financial statements.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The financial statements presented in this report represent the consolidation of Cactus Inc. (“Cactus Inc.”) and its subsidiaries (“the Company”), including Cactus Wellhead, LLC (“Cactus LLC”). Cactus Inc. is a holding company whose only material asset is an equity interest consisting of units representing limited liability company interests in Cactus LLC (“CW Units”). Cactus Inc. is the sole managing member of Cactus LLC and operates and controls all of the business and affairs of Cactus LLC and conducts its business through Cactus LLC and its subsidiaries. As a result, Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.’s Class A common stock, par value $0.01 per share (“Class A common stock”). Except as otherwise indicated or required by the context, all references to “Cactus,” “we,” “us” and “our” refer to Cactus Inc. and its consolidated subsidiaries.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (“GAAP”) for interim financial information. Accordingly, these consolidated financial statements do not include all information or notes required by generally accepted accounting principles for annual financial statements and should be read together with our Annual Report on Form 10-K for the year ended December 31, 2019. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include all adjustments, which are of a normal recurring nature, unless otherwise disclosed, necessary for a fair statement of the consolidated financial statements for the interim periods. The results of operations for any interim period are not necessarily indicative of the results to be expected for the full year.</p> 0.01 <p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In preparing our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.</p> <p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Reclassifications </span></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Certain prior period amounts have been reclassified to conform to the current period presentation. </p> <p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Pronouncements</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Standards Adopted</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;">Effective January 1, 2020, we adopted Financial Accounting Standards Board (“FASB”) Accounting Standards Update (“ASU”) 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance changed the measurement of credit losses on financial assets measured at amortized cost, including but not limited to trade receivables. The new guidance replaced the prior methodology for recognizing credit losses when it is probable that a loss has been incurred with an expected loss model that requires consideration of a broader range of information to estimate expected credit losses over the lifetime of an asset. The allowance for credit losses under the new guidance represents the portion of the asset’s amortized cost basis that we do not expect to collect over the asset’s contractual life, considering past events, current conditions and reasonable and </p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 12pt 0pt;">supportable forecasts of future economic conditions. Adoption of the standard did not impact our consolidated financial statements other than certain expanded disclosures. See further discussion and expanded disclosures at Note 3.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We also adopted FASB ASU 2017-04, Intangibles – Goodwill and Other (Topic 350) effective January 1, 2020. The new standard simplified the accounting for goodwill impairment by eliminating Step 2 of the current goodwill impairment test. Under the new standard, an entity performs its goodwill impairment test by comparing the fair value of a reporting unit with its carrying amount and recognizes an impairment charge for the amount by which the carrying amount exceeds the reporting unit’s fair value. The loss recognized should not exceed the total amount of goodwill allocated to that reporting unit. Adoption of this standard did not impact our consolidated financial statements.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">2.   Concentrations, Risks and Uncertainties</p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><i style="font-weight:normal;">Significant Customers</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Our customers are engaged in the oil and natural gas exploration and production business primarily in the U.S. as well as Australia. Our receivables are spread over a number of customers, a majority of which are operators and suppliers to the oil and natural gas industry. For the three months ended March 31, 2020 and 2019, one customer represented 10% and 12%, respectively, of consolidated revenues, and no other customers represented 10% or more of our consolidated revenues during the comparative periods.</p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><i style="font-weight:normal;">Significant Vendors</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We purchase a significant portion of supplies, equipment and machined components from a single vendor located in China. For the three months ended March 31, 2020 and 2019, purchases from this vendor totaled $2.9 million and $12.7 million, respectively. These figures represent approximately 7% and 20% for the respective periods of our total third-party vendor purchases of raw materials, finished products, equipment, machining and other services. Amounts due to the vendor included in accounts payable in the consolidated balance sheets as of March 31, 2020 and December 31, 2019 totaled $1.9 million and $4.3 million, respectively.</p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><i style="font-weight:normal;">Low Oil Prices and the Coronavirus (COVID-19)</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The significant decline in oil demand due to COVID-19 coupled with the instability of oil prices caused by geopolitical issues and production levels, as well as limited availability of storage capacity have resulted in our customers announcing significant reductions to their capital expenditure budgets for 2020. Management’s expectation is that demand for our products and services will be severely impacted for the duration of 2020 and potentially beyond; however, we are currently unable to estimate the full impact to our business, how long this significant drop in demand will last or the depth of the decline. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In an effort to offset the reduction in revenues resulting from the weakened macroeconomic environment, we implemented certain cost reduction measures beginning in March 2020. These measures included, but were not limited to, the following:</p><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:6pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">50% reduction to our Chief Executive Officer’s base salary;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:6pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Salary reductions ranging from 25% to 50% for our other named executive officers;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:6pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Salary and wage reductions for the remaining U.S. workforce ranging from 2% to 15% depending on salary and position;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:6pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Reduction in board member compensation by 25%; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Reduction of 277 U.S. employee positions. </span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We have also reduced our planned capital expenditures for 2020 and implemented additional headcount reductions in April 2020. See further discussion of the April workforce reductions at Note 12.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;">Due to the depressed oil price environment, our reduced cash flow projections resulting from expectations of reduced sales and significant declines in our market capitalization, we assessed whether our long-lived assets and </p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">goodwill may have been impaired as of March 31, 2020. We performed quantitative impairment tests using management’s current projections that are subject to various risks and uncertainties of revenues, expenses and cash flows. Our goodwill impairment assessment also includes assumptions regarding discount rates, terminal value and control premiums. Estimates of future cash flows and fair value are highly subjective and inherently imprecise. These estimates can change materially from period to period based on many factors. Accordingly, if conditions change in the future, we may record impairment losses, which could be material to any particular reporting period. Although we determined based on our current impairment assessments that our long-lived assets and goodwill were not impaired as of March 31, 2020, we can provide no assurance that we will not incur an impairment loss in the future. </span></p> 1 1 0.10 0.12 2900000 12700000 0.07 0.20 1900000 4300000 0.50 0.25 0.50 0.02 0.15 0.25 277 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">3. Accounts Receivable and Allowance for Credit Losses</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We extend credit to customers in the normal course of business. Our customers are predominantly oil and gas companies in the U.S. Our receivables are short-term in nature and typically due in 30 to 45 days. We do not accrue interest on delinquent receivables. Accounts receivable includes amounts billed and currently due from customers and unbilled amounts for products delivered and services performed for which billings have not yet been submitted to the customers. Total unbilled revenue included in accounts receivable as of March 31, 2020 and December 31, 2019 was $21.5 million and $23.8 million, respectively. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">We maintain an allowance for credit losses to provide for the amount of receivables we do not expect to collect. In our determination of the allowance for credit losses, we pool receivables with similar risk characteristics based on customer size, credit ratings, payment history, bankruptcy status and other factors known to us and apply an expected credit loss percentage. The expected credit loss percentage is determined using historical loss data adjusted for current conditions and forecasts of future economic conditions. Accounts deemed uncollectible are applied against the allowance for credit losses. The following is a rollforward of our allowance for credit losses. The increase in the allowance during the three months ended March 31, 2020 reflects the estimated impact of the current economic environment on our receivable balance. </span></p><p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:9.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at </b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:9.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning of</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:9.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> Period</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (recovery)</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write off</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Three Months Ended March 31, 2020</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 837</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 625</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (32)</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:6.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,430</p></td></tr><tr><td style="vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Three Months Ended March 31, 2019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 576</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 578</p></td></tr></table><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> 21500000 23800000 <p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:9.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at </b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:9.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning of</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:9.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> Period</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (recovery)</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write off</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:7.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Three Months Ended March 31, 2020</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 837</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 625</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (32)</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:6.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,430</p></td></tr><tr><td style="vertical-align:bottom;width:45.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Three Months Ended March 31, 2019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 576</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 578</p></td></tr></table> 837000 625000 32000 1430000 576000 2000 578000 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">4.   Inventories</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Inventories are stated at the lower of cost or net realizable value. Cost is determined using standard cost (which approximates average cost) and weighted average methods. Costs include an application of related direct labor and overhead cost. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal and transportation. Reserves are made for excess and obsolete items based on a range of factors, including age, usage and technological or market changes that may impact demand for those products. Inventories consist of the following:</p><p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">Raw materials</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,702</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,538</p></td></tr><tr><td style="vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">Work-in-progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,857</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,619</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">Finished goods</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,742</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,214</p></td></tr><tr><td style="vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100,301</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 113,371</p></td></tr></table><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">Raw materials</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,702</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,538</p></td></tr><tr><td style="vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">Work-in-progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,857</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,619</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">Finished goods</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,742</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,214</p></td></tr><tr><td style="vertical-align:bottom;width:75.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100,301</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 113,371</p></td></tr></table> 1702000 1538000 3857000 4619000 94742000 107214000 100301000 113371000 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">5. Property and Equipment, net</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Property and equipment are stated at cost. We manufacture or construct most of our own rental assets. During the manufacture of these assets, they are reflected as construction in progress until complete. Property and equipment consists of the following:</p><p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Land</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,203</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,203</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Buildings and improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,812</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,655</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Machinery and equipment</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 55,826</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 55,494</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Vehicles under finance lease</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,275</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Rental equipment</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 169,307</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 161,156</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,762</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,684</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Computers and software</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,475</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,317</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Gross property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 280,321</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 270,784</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Accumulated depreciation</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (130,853)</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (123,397)</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Net property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 149,468</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 147,387</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Construction in progress</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,403</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,361</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 162,871</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 161,748</p></td></tr></table><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Land</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,203</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,203</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Buildings and improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,812</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,655</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Machinery and equipment</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 55,826</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 55,494</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Vehicles under finance lease</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,275</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Rental equipment</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 169,307</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 161,156</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,762</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,684</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Computers and software</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,475</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,317</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Gross property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 280,321</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 270,784</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Accumulated depreciation</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (130,853)</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (123,397)</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Net property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 149,468</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 147,387</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Construction in progress</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,403</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,361</p></td></tr><tr><td style="vertical-align:bottom;width:75.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 162,871</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 161,748</p></td></tr></table> 3203000 3203000 21812000 21655000 55826000 55494000 24936000 24275000 169307000 161156000 1762000 1684000 3475000 3317000 280321000 270784000 130853000 123397000 149468000 147387000 13403000 14361000 162871000 161748000 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">6.    Debt</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:22.5pt;margin:0pt 0pt 12pt 0pt;">We had no debt outstanding as of March 31, 2020 and December 31, 2019.<span style="display:inline-block;width:1.02pt;"/></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On August 21, 2018, Cactus LLC entered into a five-year senior secured asset-based revolving credit facility with a syndicate of lenders and JPMorgan Chase Bank, N.A., as administrative agent for such lenders and as an issuing bank and swingline lender (the “ABL Credit Facility”). The ABL Credit Facility provides for $75.0 million in revolving commitments, up to $15.0 million of which is available for the issuance of letters of credit. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The ABL Credit Facility matures on August 21, 2023. The maximum amount that Cactus LLC may borrow under the ABL Credit Facility is subject to a borrowing base, which is based on a percentage of eligible accounts receivable and eligible inventory, subject to reserves and other adjustments. At March 31, 2020, in accordance with the terms of our borrowing base, we had access to the full $75.0 million revolving credit facility capacity.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">At March 31, 2020 and December 31, 2019, although there were no borrowings outstanding under the ABL Credit Facility, the applicable margin on our Eurodollar borrowings was 1.5%<span style="white-space:pre-wrap;"> plus an adjusted base rate of one- or three-month LIBOR. We were in compliance with all covenants under the ABL Credit Facility as of March 31, 2020.</span></p> 0 0 P5Y 75000000.0 15000000.0 75000000.0 0 0 0.015 0.015 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">7. Revenue</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The majority of our revenues are derived from short-term contracts for fixed consideration. Product sales generally do not include right of return or other significant post-delivery obligations. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Revenues are recognized when we satisfy a performance obligation by transferring control of the promised goods or providing services to our customers at a point in time, in an amount specified in the contract with our customer and that reflects the consideration we expect to be entitled to in exchange for those goods or services. The majority of our contracts with customers contain a single performance obligation to provide agreed upon products or services. For contracts with multiple performance obligations, we allocate revenue to each performance obligation based on its relative standalone selling price. We do not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract with the customer. We do not incur any material costs of obtaining contracts. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;">We do not adjust the amount of consideration per the contract for the effects of a significant financing component when we expect, at contract inception, that the period between the transfer of a promised good or service to a customer and when the customer pays for that good or service will be one year or less, which is in substantially all cases. Payment terms and conditions vary, although terms generally include a requirement of payment within 30 to 45 days. Revenues </p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 12pt 0pt;">are recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. We treat shipping and handling associated with outbound freight as a fulfillment cost instead of as a separate performance obligation. We recognize the cost for the associated shipping and handling when incurred as an expense in cost of sales.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We disaggregate revenue into three categories: product revenues, rental revenues and field service and other revenues. We have predominately domestic operations, with a small amount of sales being generated in Australia. The following table presents our revenues disaggregated by category:</p><p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:40.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:18.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:18.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Product revenue</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 87,031</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 57</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 86,640</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 55</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rental revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 36,163</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 38,497</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Field service and other revenue</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,945</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,738</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 154,139</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 158,875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">At March 31, 2020, we had a deferred revenue balance of $1.5 million compared to the December 31, 2019 balance of $1.4 million. Deferred revenue represents our obligation to transfer products to or perform services for a customer for which we have received cash or billed in advance. The revenue that has been deferred will be recognized upon product delivery or as services are performed. As of March 31, 2020, we did not have any contracts with an original length of greater than a year from which revenue is expected to be recognized in the future related to performance obligations that are unsatisfied.</p> <p style="font-family:'Times New Roman';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:40.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:18.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:18.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Product revenue</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 87,031</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 57</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 86,640</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 55</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rental revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 36,163</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 38,497</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Field service and other revenue</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,945</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,738</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 154,139</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 158,875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:9pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 87031000 0.57 86640000 0.55 36163000 0.23 38497000 0.24 30945000 0.20 33738000 0.21 154139000 1 158875000 1 1500000 1400000 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">8. Tax Receivable Agreement (TRA)</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In connection with our initial public offering (“IPO”) in February 2018, we entered into the TRA with certain direct and indirect owners of Cactus LLC (the “TRA Holders”). The TRA generally provides for payment by Cactus Inc. to the TRA Holders of 85% of the net cash savings, if any, in U.S. federal, state and local income tax or franchise tax that Cactus Inc. actually realizes or is deemed to realize in certain circumstances. Cactus Inc. will retain the benefit of the remaining 15% of these net cash savings. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The TRA liability is calculated by determining the tax basis subject to TRA (“tax basis”) and applying a blended tax rate to the basis differences and calculating the iterative impact. The blended tax rate consists of the U.S. federal income tax rate and an assumed combined state and local income tax rate driven by the apportionment factors applicable to each state. Subsequent changes to the measurement of the TRA liability are recognized in the statements of income as a component of other income (expense), net. As of March 31, 2020, the total liability from the TRA was $216.5 million with $14.6 million reflected in current liabilities based on the expected timing of our next payment. The payments under the TRA will not be conditional on a holder of rights under the TRA having a continued ownership interest in either Cactus LLC or Cactus Inc.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">The term of the TRA commenced upon completion of our IPO and will continue until all tax benefits that are subject to the TRA have been utilized or expired, unless we exercise our right to terminate the TRA. If we elect to terminate the TRA early (or it is terminated early due to certain mergers, asset sales, other forms of business combinations or other changes of control), our obligations under the TRA would accelerate and we would be required to make an immediate payment equal to the present value of the anticipated future payments to be made by us under the TRA and such payment is expected to be substantial. The calculation of anticipated future payments will be based upon certain assumptions and deemed events set forth in the TRA, including the assumptions that (i) we have sufficient taxable income to fully utilize the tax benefits covered by the TRA and (ii) any CW Units (other than those held by Cactus Inc.) outstanding on the termination date are deemed to be redeemed on the termination date. Any early termination payment may be made significantly in advance of the actual realization, if any, of the future tax benefits to which the termination payment relates. </span></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We may elect to defer payments due under the TRA if we do not have available cash to satisfy our payment obligations under the TRA. Any such deferred payments under the TRA generally will accrue interest from the due date for such payment until the payment date.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> 0.85 0.15 216500000 14600000 <p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">9. Equity</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of March 31, 2020, Cactus Inc. owned 62.9% of Cactus LLC as compared to 62.8% as of December 31, 2019. As of March 31, 2020, Cactus Inc. had outstanding 47.4 million shares of Class A common stock (representing 62.9% of the total voting power) and 28.0 million shares of Class B common stock (representing 37.1% of the total voting power). </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Redemptions of CW Units</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt;">Pursuant to the First Amended and Restated Limited Liability Company Operating Agreement of Cactus Wellhead, LLC (the “Cactus Wellhead LLC Agreement”), holders of CW Units are entitled to redeem their CW Units, which results in additional Class A common stock outstanding. Since our IPO in February 2018, 32.6 million CW Units have been redeemed in exchange for shares of Class A common stock with 8.5 million occurring during the three months ended March 31, 2019 as part of a secondary offering. We did not receive any of the proceeds as part of the offering and incurred $1.0 million in offering expenses which were recorded in other expense, net, in the consolidated statement of income. No CW Unit redemptions occurred during the three months ended March 31, 2020. </p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Dividends</i> </p><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt;">  </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On January 30, 2020, our board of directors declared a cash dividend of $0.09 per share of Class A common stock of which $4.3 million was paid on March 19, 2020. A de minimis amount of dividends was paid during 2020 to restricted stock unit holders with accrued dividends that vested during the period. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Member Distributions</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Distributions made by Cactus LLC are generally required to be made pro rata among all its members. For the three months ended March 31, 2020, Cactus LLC distributed $3.7 million to Cactus Inc. to fund the March 19, 2020 dividend payment and made pro rata distributions to its other members totaling $2.2 million over the same period. During the three months ended March 31, 2019, Cactus LLC made $0.2 million in pro rata distributions to its members other than Cactus Inc.</p><p style="font-family:'Times New Roman';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><i style="font-weight:normal;">Limitation of Members’ Liability</i></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Under the terms of the Cactus Wellhead LLC Agreement, the members of Cactus LLC are not obligated for debt, liabilities, contracts or other obligations of Cactus LLC. Profits and losses are allocated to members as defined in the Cactus LLC Agreement.</p> 0.629 0.628 47400000 0.629 28000000.0 0.371 32600000 8500000 1000000.0 0.09 4300000 3700000 2200000 200000 <p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">10.   Commitments and Contingencies</p><p style="font-family:'Times New Roman';font-size:10pt;font-weight:bold;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-weight:normal;">We are involved in various disputes arising in the ordinary course of business. Management does not believe the outcome of these disputes will have a material adverse effect on our consolidated financial position or consolidated results of operations.</span></p> <p style="font-family:'Times New Roman';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">11. Earnings per Share</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during the period by the weighted average number of shares of Class A common stock outstanding during the same period. Diluted earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during that period by the weighted average number of common shares outstanding assuming all potentially dilutive shares were issued. </p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We use the “if-converted” method to determine the potential dilutive effect of outstanding CW Units (and corresponding shares of outstanding Class B common stock), and the treasury stock method to determine the potential dilutive effect of unvested restricted stock units assuming that the proceeds will be used to purchase shares of Class A common stock.</p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 6pt 0pt;">The following table summarizes the basic and diluted earnings per share calculations:</p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="background-color:auto;vertical-align:bottom;width:22.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended <br/>March 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net income attributable to Cactus Inc.—basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,983</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,807</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net income attributable to non-controlling interest <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,166</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,505</p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net income attributable to Cactus Inc.—diluted <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 44,312</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Weighted average Class A shares outstanding—basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 47,270</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 38,719</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of dilutive shares <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(2)</sup></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,125</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 36,527</p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Weighted average Class A shares outstanding—diluted <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(2)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 75,395</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 75,246</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Earnings per Class A share—basic </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.69</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Earnings per Class A share—diluted <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1) (2)</sup></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.40</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.59</p></td></tr></table><p style="font-family:'Times New Roman';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:6pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Under the if-converted method for the three months ended March 31, 2020 and 2019, the numerator is adjusted in the calculation of diluted earnings per share to include $11.2 million and $17.5 million, respectively, attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 26% and 24%, respectively.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Diluted earnings per share for the three months ended March 31, 2020 and 2019 includes 28.0 million and 36.3 million, respectively, weighted average shares of Class B common stock assuming conversion, plus the dilutive effect of restricted stock unit awards.</span><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;white-space:pre-wrap;"> </span></td></tr></table><div style="margin-top:12pt;"/> <p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 6pt 0pt;">The following table summarizes the basic and diluted earnings per share calculations:</p><table style="border-collapse:collapse;font-size:16pt;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="background-color:auto;vertical-align:bottom;width:22.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended <br/>March 31, </b></p></td></tr><tr><td style="background-color:auto;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="background-color:auto;vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2019</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net income attributable to Cactus Inc.—basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,983</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,807</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net income attributable to non-controlling interest <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,166</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,505</p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net income attributable to Cactus Inc.—diluted <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 44,312</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Weighted average Class A shares outstanding—basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 47,270</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 38,719</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of dilutive shares <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(2)</sup></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,125</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 36,527</p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Weighted average Class A shares outstanding—diluted <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(2)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 75,395</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 75,246</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Earnings per Class A share—basic </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.69</p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:75.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Earnings per Class A share—diluted <sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1) (2)</sup></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.40</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.59</p></td></tr></table><p style="font-family:'Times New Roman';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:6pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Under the if-converted method for the three months ended March 31, 2020 and 2019, the numerator is adjusted in the calculation of diluted earnings per share to include $11.2 million and $17.5 million, respectively, attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 26% and 24%, respectively.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;">Diluted earnings per share for the three months ended March 31, 2020 and 2019 includes 28.0 million and 36.3 million, respectively, weighted average shares of Class B common stock assuming conversion, plus the dilutive effect of restricted stock unit awards.</span><span style="color:#000000;font-family:'Times New Roman';font-size:10pt;font-style:normal;font-weight:normal;text-align:left;white-space:pre-wrap;"> </span></td></tr></table><div style="margin-top:12pt;"/> 18983000 26807000 11166000 17505000 30149000 44312000 47270000 38719000 28125000 36527000 75395000 75246000 0.40 0.69 0.40 0.59 11200000 17500000 0.26 0.24 28000000.0 36300000 <p style="font-family:'Times New Roman';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">12. Subsequent Events</b></p><p style="font-family:'Times New Roman';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As a result of significant declines in sales activity, we notified 277 U.S. associates on March 31, 2020 that their position with the Company had been eliminated. Due to the fact that the outlook for our industry has continued to rapidly deteriorate, we reduced our U.S. workforce by an additional 212 associates in April.</p> 277 212 XML 29 R5.htm IDEA: XBRL DOCUMENT v3.20.1
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2020
Mar. 31, 2019
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME    
Net income $ 33,098 $ 48,446
Foreign currency translation adjustments (1,083) 270
Comprehensive income 32,015 48,716
Less: comprehensive income attributable to non-controlling interest 13,647 21,786
Comprehensive income attributable to Cactus Inc. $ 18,368 $ 26,930
XML 30 R1.htm IDEA: XBRL DOCUMENT v3.20.1
Document and Entity Information - shares
3 Months Ended
Mar. 31, 2020
Apr. 28, 2020
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Mar. 31, 2020  
Document Transition Report false  
Entity File Number 001-38390  
Entity Registrant Name Cactus, Inc.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 35-2586106  
Entity Address, Address Line One 920 Memorial City Way, Suite 300  
Entity Address, City or Town Houston  
Entity Address, State or Province TX  
Entity Address, Postal Zip Code 77024  
City Area Code 713  
Local Phone Number 626-8800  
Title of 12(g) Security Class A Common Stock, par value $0.01  
Trading Symbol WHD  
Security Exchange Name NYSE  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Large Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Central Index Key 0001699136  
Current Fiscal Year End Date --12-31  
Document Fiscal Year Focus 2020  
Document Fiscal Period Focus Q1  
Amendment Flag false  
Class A Common Stock    
Entity Common Stock, Shares Outstanding   47,400,617
Class B Common Stock    
Entity Common Stock, Shares Outstanding   27,957,699
EXCEL 31 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( !"3GE ?(\\#P !," + 7W)E;',O+G)E;'.MDD^+ MPD ,Q;]*F?L:5\'#8CUYZ6U9_ )Q)OU#.Y,A$[%^>X>];+=44/ 87O+>CT?V M/S2@=AQ2V\54C'X(J32M:OP"2+8ECVG%D4)6:A:/FD=I(*+ML2'8K-<[D*F' M.>RGGD7E2B.5^S3%":4A+,*P).B0\5?UX^8 TBTH_0(:+L A#&^NQT:E8(C M-R."?S]PN -02P,$% @ $).>4"?HAPZ" L0 ! !D;V-0&UL38Y-"\(P$$3_2NG=;BGH06) L$?!D_>0;FP@R8;-"OGYIH(? MMWF\81AU8\K(XK%T-8943OTJDH\ Q:X831F:3LTXXFBD(3^ G/,6+V2?$9/ M-(X'P"J8%EQV^3O8:W7..7AKQ%/25V^9"CGIYFHQ*/B76_..7+8\#?NW_+"" MWTG] E!+ P04 " 0DYY0CV0#NN\ K @ $0 &1O8U!R;W!S+V-O M&ULS9)12\,P$,>_BN2]O305E=#E9<,G!<&!XEM(;EM8DX;DI-VWMZU; MA^@'\#%W__SN=W"-B=)T"5]2%S&1PWPS^#9D:>**'8BB!,CF@%[GHC9'O4<0G-^!1])6DX8)6,2%R%1CC30)-77IC+=FP_/3Z_SNH4+F70P./[*3M(IXHI=)K_5Z\WVD2G!!2_X;5'S;?4@12W%_4)E&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T M$W-I=MNTF83M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY M\^XN8NB&B)3R> +]O6N[!3+UES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4? M,_@5RU2-9:,!$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA M5,+$P&IG/U9KQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M M&N#C\7@XMLO2BW A(5M>5 TR 6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T M1G*=D 4. #?$T4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH]5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J M-2S%UGB5P/&MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2. MFJW"$2M"/F(9-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$. M$9)>-T(^8LZ+D!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]07 M2N0/)J<_Z3(T!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL! M_]':-\*K^(+ .7\N?<^E[[GT/:'2MSAD M6R4)RU3393>*$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W MF)&Y"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>( M\J(A[J&&F,_#0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R M4E5@,5O& RN0HGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K> M9;'!51W/55ORL+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4X MOT4SMA*7&+SCYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5 MYYN MTB42%(JP# 4A%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+ MA=OB5,V[&KXF8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.'YA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> , M?-2K6J5D*Q$_2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H: M,]6+K#F-"F]!U4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ M 5!+ P04 " 0DYY0>@4<:44# #G#P & 'AL+W=O]+:1F]56;>K^&3M^3Y)VMU)5WE[ M9\ZZ=G<.IJERZTZ;8]*>&YWO?5%5)G(RF2957M3Q>NFO/3;KI;G8LJCU8Q.U MEZK*F]\;79KK*A;Q^X6GXGBRW85DO3SG1_U-V^_GQ\:=)>,H^Z+2=5N8.FKT M814_B/NM2KL"K_A1Z&M[QMZ=5/(^CO3[DE](^F>LG/2PH MBZ-A]5_TJRZ=O)N)\]B9LO6?T>[26E,-H[BI5/E;_UW4_OO:WTG3H0P7R*% MC@5J_M\"-12HL4!XAZ2?F5_JA]SFZV5CKE'3IW7.NTTA[I5[F+ONHG]V_IY; M;>NNOJXGR^2U&V90;'J%O%&(49&XL4<#B0PVDI3+?PVV5*&P@8(K4+Y! 54LL,$4&DQ)N0A3!A(FYAFTF-'Z M(.<-D#!!SZ'%G-:'20,)$_4"6BQH?9@UD#!ABPDF;D)'"/-&&B9QP7 MR B2 MD TT3.@"POT@)!TAC!UIF-P%)EQ0@&68/-(PT0N,N: 4RS!\I.'2QZP+BK(D MZ0,-ESX&7E"<%4D?:+CT,?."$JU(^D##I8^Q%Q1J1=('&BY]3+Z@7"N2/M P MZ4O,OJ1A"-:P+9E]2KM-P)R,-MY,Q^Y)RG9*=##3< M'L/L2\IU1G8RT'!/#+,O*==9^#N&--QK*F9?4:XS\J8*_O>9M2C,OJ)<9\PO MH<)<*\IL%NR?[:!)O:8>]D_J>D?N74@Q[^[@U9P; 9.K*)5TMBF9K9PMLMET M$>[&Y*9MJG1S]!UF&^W,I?;M[7,LZC9Z-M8U;[[% M.AACM9O0Y,Y!?G)=]WA2ZH/M#F?NN.E;S_[$FO/05B=C;[_^ U!+ P04 M" 0DYY0.%?E&*,$ ^%P & 'AL+W=OV:8[$TL*?^0__#P\; XMMVW?A/C,/N^:_;]_7PS#(>[HN@?-W%7]Y_:0]RG M_SRUW:X>TFOW7/2'+M;K*6C7%%HI6^SJ[7Z^7$S?/G?+1?LR--M]_-S-^I?= MKN[^6\6F/=[/8?[VX3.,'XKEXE _Q[_B\/7PN4MOQ:64]787]_VVW<^Z M^'0__QGN*C,%3(J_M_'87SW/QE0>VO;;^/+[^GZN1D>QB8_#6$2=?EYC%9MF M+"GY^/=$ZHG,_.V?\17V.3Y*.35,=CV_33W]GC2S^TNW,IRZGW^.Y_+

VF M_Z5L^_3U=5GZ1?$ZEG.6K$X2?271MXJ**\IPD12I_HL)+9K04WQY%6^5'(]B M/$[Q>!T/)(F3Q$Z2_2D)5%K13 29TE:A[,:(;@QW0ZI9G23FJII0:K3$#%=Y MYVTI>RE%+R7W@L1+R6H!I5"1!JP$&2 ZD-U8T8WE;@QQ8X66P9)XX2( 98QL MQ8E6'+=":EDY5HO!4COBN!)D8+S/#!DONO'<#1D,*\]SMMH[VDV2#)SQLIL@ MN@G4T[ZB/5K9L,+H&["=0- M\+3!!:#36])I79K,! >9G:"9(Z>H(\U'!:*G?@25R:$/9!(#1S$=HJNSYH9K MI5*!SG))AR;87(_)- ;#%I>K<7I;@LQ0X!!U%*+ \8C&.-;E7&92XB[C1Z8H M<(Q2**U 0&30CC4QEVFM;,Z/C%+@+*45K8!3$HQ%1?U\)+OU(\,4.$UI1ZR M<]*:P&:$H'*8FY\R3('3U%&: @>EY:N>I'*8Z2LMTU1SFCI*4\TYZ2&M:<2. M( L VF;\R#S5G*>.\E1S3D()=.&35)A;]W1F'\I9ZBE+-:>D5A#83O)CW:TC MF:>:\]13GFK.R81MI'ZX"@-D9I:66:KYUM;3K:WFNU;P7@5JA\O23CNW:](R MF34GLZ=DU@*9E;-TU:XD'?C2Y@XR,ILU9[.G;)8T=*Z_K[EU(E-9.[;N^=S< ME#FJ.4<])9>D8;F\J[EU(C-4!X@LY M)\O41IKN+"4=6 R9B88R4)$#-5!\(0>EN'V7=.]LWU$&*G(0EKF<9!#BCX,0 M91 B!QC-=H5\JVC858$HRLTK&87(49@[/A@974;]<'L8&35&0 UM#T'#%H;W M-2RA'89V-]U6EB4_#^.C2 MZT3V]#.WA?%M=7*[,E_\#4$L#!!0 ( !"3GE"GOHN3G@( +$* 8 M >&PO=V]R:W-H965T&ULC99OKYHP%,:_"N$#".6O M+LN6;(FYR[;75:N2"Y2U5>^^_=J"!-JCZ NAY3FGOU,.3YK?*'OG9T*$\U&5 M-5^Z9R&:A>?Q_9E4F,]H0VKYY$A9A84

  • *N\P2?RDXA?S9;)D==G M.105J7E!:X>1X]+]A!8;E*@ K?A=D!L?W#NJE!VE[VKP[;!T?45$2K(7*@66 MERO9D+)4F23'WRZIVZ^I H?W]^Q?=/&RF!WF9$/+/\5!G)?NW'4.Y(@OI7BC MMZ^D*RAVG:[Z[^1*2BE7)'*-/2VY_G?V%RYHU661*!7^:*]%K:^W+O\]# X( MNH"@#T#1TX"P"PB- *\ETZ5^Q@*O(@ A AT?#B%2 Z*5)%I2:PF* M0M_@L$7S,(5!0A DM$'F!D@K20=K^#,?&2 3HA%)!))$-DEFD+22:+@EOOP9 M*%.J$4L,LL06"S*76Z 67HD2>A!\Z( *#8!$*O 4&RQT"P2R+;)N,'[H9@>T.VO]G]AUYR MN"G5& ?V.&2;G-V#R#:P ,5V$T[KQDBPU2'(ZZPNM*TL2+/8>NE3LC$0;'L( M\CVK"VU; X&F9"V0-S@[J,/<#\Q.1A;E-YS]I#5#L0M.D.B%Y_2EW]!U!+ P04 " 0DYY0!S'S!! $ 5 M$P & 'AL+W=O-39]8'4XDCS>_'VH8[PR64P\\S Z7.RN)E6E%A?7 MNOG6'K7N@N]E4;7+\-AUYZ;MY_JL*_/+OF[*O#.7S2%JSXW.=\.@ MLHB(L30J\U,5KA;#O9=FM:@O77&J]$L3M)>RS)M_UKJHK\N0A^\WOIP.QZZ_ M$:T6Y_R@_]#=U_-+8ZZB6Y3=J=15>ZJKH-'[9?C,GS9"]@,&Q)\G?6UGYT%? MRFM=?^LO?MTM0]8STH7>=GV(W!S>]$8711_)\/A["AK>BC?% MO.:MWM3%7Z===UR&*@QV>I]?BNY+??U%3P4E83!5_YM^TX6!]TQ,CFU=M,/_ M8'MIN[J_RU:*IKT$SKM8Y[Q\*_B3,9&[[F\/<#;^9:EMS]VW%6;J(WOI $V8]8FB. MN2$B$_V6@E"*-3G#Z3[!QD5P)G$* :L00X#D+H#" 6(8(!X"B+L F34-(R8= M,-6(26(N+-@&P922"::30#J)6P]G.$ * Z1N/9Q;]8R8>$Y4I*F]-@!%:>J9 M7 G)2$#&2K.6;AKF>P84S*) %F%E46X6LX!);-6,8$PH@>EDD$X&Z%AYUIF3 M)V9<)18;@%)Q1I@,9UCF#-!);)TS-]/LL1O9 !!Y)H9[+(<#+JF=ACMI/G$6 M^ZJ&SO/,"622=M4$5B')[%5 ,!E+7^G8I[@ A)1-2#B99)Q)FX^+^I1YZ6#7 MX\#VN&U[$VB>2 B6*9N/"S./:9QZ"&'?XXE+B)A-*''E&3M/\P; B*RE')@I^52!C9*KQ]^6')L;!^[FO"^Y M:UQ*,L'M:0&P-(T]KSO"_D;L\3$/8(^T!P15C4A53M+ M#52=":?=0S I,U^'C%5-2-6>CI&PJND#JB:L:GI$U>3*U;P-8D5YQ JM:N*I./"LM/!\[0-3>6<&B M%D#49'_V32 Y*Y=]MEME"$I5=O?GX8;U+5 /8#=M$^A_N"%0XF.#K4(@J[ [ M-N%Z0"Q)VJTS@ DEN8\0M@J!K,(6J7 _IV0BG)X6PLCIV:+99D*IF\.P[](& MV_I2=?UG^^SN;6_GF?K-".O^FC]MQAV:'V'&#:/?\^9PJMK@M>ZZNAPV)/9U MW6G#TBQ9&!QUOKM=%'K?]:?2G#?C1LUXT=7G:1,JNNV$K?X%4$L#!!0 ( M !"3GE"PXTE;1P( )D& 8 >&PO=V]R:W-H965T&UL M?571CILP$/P5Q'L/C F0B" =J:I6:J7HJFN?G603T!E,;2=<_[ZVX3C..'W! M]C([.V/,.N\9?Q$5@/1>&]J*K5])V6V"0!PK:(AX8!VTZLV9\89(M>270'0< MR,DD-32(PC )&E*W?I&;V)X7.;M*6K>PYYZX-@WA?TN@K-_ZR'\+/-672NI M4.0=N^H]HL\LTW@!^U="+V=S33@Z,O>C% MM]/6#[4@H'"4FH&HX08[H%03*1E_1DY_*JD3Y_,W]B_&N_)R( )VC/ZN3[+: M^IGOG>!,KE0^L?XKC'Y6OC>:_PXWH JNE:@:1T:%>7K'JY"L&5F4E(:\#F/= MFK$?WJ1X3',G1&-"-"6HVO]+P&,"?D^(C?E!F;'ZF4A2Y)SU'A\^5D?TF4 ; MK#;SJ(-F[\P[Y5:HZ*U .,R#FR8:,>6 B>:8"1$H]JE$Y"I11HOTZ&.!W1*! MPM1= CM=8$.P^N#BCL;821 ; CPG0&MK&P9,8C"MP6 8V!*3+LH@G,2I)6:)BE":W1&3.<5D#C&6YS);G 64X<0^,4M4 ME*RQ_9F"V1_= +^8YB>\([NV4O\[L^C47Q\CW1&L>*GZ[M FWVF&IOV#\$O= M"N_ I.HWIBN<&9.@1(8/ZBA5ZIZ8%A3.4D]3->=#MQP6DG7C11!,MU'Q#U!+ M P04 " 0DYY0:<*V4^$$ *& & 'AL+W=O?T^(6-(&P25IF M__TZ(67(]0G,2R'TN_;QM7V/G?$Q+[Z7&^>JP8]=MB\GPTU5'>Y'H_)EXW9I M^24_N+W_SVM>[-+*/Q9OH_)0N'3=!.VR$461'NW2[7XX'3>_/1739=N] M>RH&Y?MNEQ;_S5R6'R=#,?S\X>OV;5/5/XRFXT/ZYKZYZJ_#4^&?1N=6UMN= MVY?;?#\HW.MD^)NX7\FH#FB(O[?N6%Y\']1#><[S[_7#[^O),*H5N_;:/#_C)<_*YN_@Y;VL\EW;BI>R2W^DTXR?IJ.9WT5:I=-QD1\'Q6F)'M)Z)XA[ZU?02_UC MLV":__DI+OVO'U,A]7CT43?4,K,30QW&=)DY8FR762 FZ3(/@%%1EWE$C.@R M2\10EUDA1IZ9D<_;.7D$DT=- [+3@&+).S&Z8?8-(PU+WB)D!&DE6/X>0BP6 MVDJ6G9"ZL\12N 0]6J4-PU9 O"9)%B=)PB1)D*28)>G$J$Z2=,Q2.4<47:S6 MCA@%Q:BFB;@CIJ>!P@]'PZ8P#G7X-2S;FQY!2ELWX,F3N?/*H9Y%JJ%@# MQ;P?'?9#7/#J!M218J 4 Z2P C SP9*S3,C"A)F3-F$-/8;47,B+"W M1$ .ZVC10IW=(F/+*]%-K"NHQ^P$$,3JYZR%+E=@H%F@?6D4UXRQOB1BCQ' M9'AEG+7094\DDIY^<)D6H$['O&:)L 0+8@E<(HC7R!6 R/3-)J[E0@'%FD^5 M"L5HH[F:&U17#G8& :Q!!,>;L**3MI'A*028T/RPM *8LJK/T 3V!P$,(C9\ M@>E@4RBM>*Y#AQ"^+D?$DQ!RQJHD..8APXD3GBK0J3*&BUL!3OF4:M&3+.Q@ M EA8;'FR@$'YR6.%> XPLJ:OX OL/@+9#_?4%NK,G@F*6N@_(E&*[Z@'Q$E* MPND#?J9X^5^BUJQ-*%CJ(1?7.Z+G_"&P/PI@D)J;M0B]3YD@J7. D4GBGNDC M;)$4_?J!E+"I$3"UX(!'P(J((E:Z5S>QKJ">6Q%R++[:*'2LNX3OV1M05PRV M-4*VQBV_A:Y9/H5^Y3/#;YV($L%%> 4Q>5%TNR/#]D?(_H+;9VAL)'L.!H1] MC8"O!0<# C<5+6*>'D I'60'W7HBV[<(L:L1G3C,V%@+EHML0>"-Y9PIU\"^L*PN9"P%R"(PVA"I[PUQ)+A"G!E\@*8%)& M25]5Q66>4)DGOC428(K\2 ,@D<32!K,".&6"%RJ/@/-K6_/S'^PV2<*M$G*Q M(D4]#B*Q"4EP3].\1LKP J:,3/@E%F#(%4<7[R?KM^1_IL7;=E\.GO.JRG?- M"\G7/*^<;S+ZXNO!QJ7K\T/F7JOZJ_'?B]/;Z=-#E1_:-^^C\^O_Z?]02P,$ M% @ $).>4(,@, 2\ 0 U0, !@ !X;"]W;W)KQ#VI9:*4V-5U1#= M*Z"5=^*,Q%&4$DX[@8O,V\ZJR.1@6"?@K) >.*?J_01,CCG>X@_#4]>TQAE( MD?6T@5]@?O=G934RLU0=!Z$[*9"".L>WV^,I<7@/>.Y@U L9N4HN4KXXY6>5 MX\@E! Q*XQBHO:YP!XPY(IO&Z\2)YY#.<2E_L-_[VFTM%ZKA3K(_767:'-]@ M5$%-!V:>Y/@#IGKV&$W%/\ 5F(6[3&R,4C+M3U0.VD@^L=A4.'T+=R?\/8:7 M-)G'6+O0$(@G_EW:FB1*3DB%7K?4S?B[3&VO2F=T;?"O]GDM;5> MBVV:9.3JB";,*6#B)69&$,L^AXC70ISB_]W3_3K!;C7'G2?8?R)(UPF258+$ M$^P^$1R^%!DP!X\1'A-MHF]?HI!%6SFHQB^41J4V=O8C^4?/"S\ M(U5-)S2Z2&.'ZT=02VG YA)M;*VM_6.SPJ V3CQ8685-"XJ1_?2)R/R3B[]0 M2P,$% @ $).>4*8P=Z5P! PA0 !@ !X;"]W;W)KYSO^_[TD"3==N_K MLOO4G/PQ_//:M'79A\OV+>E.K2]W8Z.Z2BA-\Z0N#\?Y:CG>>VY7R^:]KPY' M_]S.NO>Z+MO_UKYJSH]S-?]^X_/A;=\/-Y+5\E2^^;]\_^7TW(:KY!IE=ZC] ML3LTQUGK7Q_G3^IAHXNAP:CX^^#/W_[Q[GZ>#(5W[;#R'* MH_-^??_)10-I]-V?_A/WP5Y(.3T,>VJ;KQ=[9][_JFGJ($*W7Y[7(\',?C M^?)/D4W-< .:&M"U@?IY STUT#\:F#'YB[,QU5_*OEPMV^8\:R^C=2J'2:$> M='B8V^'F^.S&_T*V7;C[L5*Y728?0Z!)L[YHZ%9S520A^K4+0EVL232G^PXV M4J'2 G>A819Z#)#=9>%P ,#F#& O@V@''L,%TT^:HZC1NO4L8>UD2ICC%Z,7P M*?)3R9T-"VU8:2/+F0TK'XDK-#,"1'D1&5X'K3CP1%@O:R=ZR2G#G:@4+^P4 M=&/XRDYE-CKC*0,5D8FXB6!& 3<9=Z-$/RY7W(P4V5Q'S$ @/2D"9OADF$3F M?B'SU0Y4"RI<9#XH3"\%\%5$^*C(7P5K)%.!;>!]Q+$.9C566A#%( (.6OR=( FYA*%;V$28<@<+/(6"B#,.RDP1*8D(0XX Y!R''$EZ+5R>BKD! M9#J+\4!CR&E0,3I>JFM9"VKQU0!$1D=PH#$N-<"EX[C4DH-49,YQ.U(6OD%B M!83&M-0D:)!'5H2.?*0"PCG.6RW112GE8DD 79%:$W.$":=!U>@X<[4L!TFG MP11W)'7A4U%%^*0Q,#7X]HU5TQHC3@/$\1INK4&E9QU?YT!%T80P!C7 (-\S M6$^BNZV%(N=U)U+EAE=6R^#R?13&+J]+W?7B\J_]L-I M$<[;RZ[:Y:)O3M..87+=MES]#U!+ P04 " 0DYY0&HY,VK0! #2 P M& 'AL+W=O,;NC%\23KQ@4'R]-.U/ +W._N:+S%9I52:FBMQ)88 MJ#)ZO]D?=@$? <\2!KLXDU#)"?$U&-_+C"8A(5!0N* @_':&!U J"/DTWB9- M.H<,Q.7YHOXMUNYK.0D+#ZA>9.F:C-Y24D(E>N6><'B$J9YK2J;B?\ 9E(>' M3'R, I6-*REZZU!/*CX5+=['7;9Q'\:;FPMMG< G I\)MY' QD Q\Z_"B3PU M.! S]KX3X8DW>^Y[4P1G;$6\\\E;[SWGF[N[E)V#T(0YC!B^Q,P(YM7G$'PM MQ(%_HO-U^G8UPVVD7R_I2;(NL%L5V$6![7]+_(SAR;]%LD5/-9@Z3I,E!?9M MG.2%=Q[8>Q[?Y ,^3OM/86K96G)"YU\V]K]"=.!32:Y\J8W_8+.AH'+A^,6? MS3AFH^&PFWX0F[]Q_A=02P,$% @ $).>4 :)GR6U 0 T@, !D !X M;"]W;W)K&UL=5/;;MP@$/T5Q <$+^NTT!0>IBH%U\ W<]^%DO$46EH9+4)9KA0RT);[? M'8YYB(\!/SA,=G5&H9*SUB_!>&Q*G 5!(*!V@8'Y[0(/($0@\C)>9TZ\I S M]?G*_CG6[FLY,PL/6OSDC>M+?(=1 RT;A7O6TQ>8Z[G%:"[^*UQ ^/"@Q.>H MM;!Q1?5HG98SBYD$F] M'UAXXMV!^M[4P1E;$>^\>.N]EXIFM""70#3''%,,7<7LE@CBV9<4="O%D?X# MI]OP_:;"?83?_J%POTV0;Q+DD6#_'X*D<2LF_RL)6?54@NGB-%E4ZU'%25YY MEX&]I_%-?H>G:7]BIN/*HK-V_F5C_UNM'7@IV8TOM?'^0>1Y1M7OP!02P,$% @ $).>4,W W'NT 0 T@, !D !X;"]W M;W)K&UL?5-A;]L@$/TKB!]0'))T561;:EI-F[1* M4:MMGXE]ME'!>(#C]M_WP*[G;5Z_ '?<>_?N.-+!V&?7 'CRHE7K,MIXWQT8 M&X M"_$QX(>$P2W.)%1R-N8Y&%_+C"9!$"@H?& 0N%W@#I0*1"CCU\1)YY0!N#R_ MLW^.M6,M9^'@SJB?LO1-1F\H*:$2O?*/9O@"4SU[2J;BO\$%%(8')9BC,,K% ME12]\T9/+"A%BY=QEVW-B:*RN^%%WEJS4#LV/M. MA"?>'#CVI@C.V(IXA^(=>B\Y3_8INP2B*>8XQO!%S&:.8,@^I^!K*8[\'SA? MAV]7%6XC?/\?A7\0[%8)=I%@^V&):S'7?R5ABYYJL'6<)D<*T[=QDA?>>6!O MXR.RW^'CM#\(6\O6D;/Q^+*Q_Y4Q'E!*Z%[4/ZFT48RYTW3$ML;8'4D24%HEET1R;C"91Y]1U/F>G""*S@:9 8H-9>@+-<*&6@*?+O9'W8!'P&_ M.(QV<4:ADI/6+\'X5ANZ[ -QC5T+!!N"<]/D*JYQ*C5/QW.(/P\*#$YZBTL'%%U6"= MEBF*ER+9V[1S%?.5;F1H_(3+WO67CBS9[Z MWE3!&5L1[[QXZ[WG\FJ;DW.(DR"'"4(7D,V,(#[XG(&N93C0+W2Z3M^N"MQ& M^N6ZP+_XNU7^+O*W_ROP*X1FU__D((N&2C!M'"6+*CVH.,8+[SRMM_$%R2=\ M&O4?S+1<6732SC]K;'ZCM0,O);OPA7;^=\V&@,:%X[4_FVG&)L/I/GT?,O_A M\AU02P,$% @ $).>4%.>@\2T 0 T@, !D !X;"]W;W)K&UL?5-A;]L@$/TKB!]0')*N661;:CI-F]1*4:=MGXE]ME'! MYP&.VW\_P*[GM=Z^ '?<>_?N.-(!S9-M !QYUJJU&6VP5=M#Z MFPJ-%LZ;IF:V,R#*"-**\23YP+20+*=G"R1#;:RW,RQ$4#AG= MT%?'HZP;%QPL3SM1PS=PW[N3\1:;64JIH;426V*@RNCMYG#X Z4"D9?Q:^*D<\H 7)Y?V3_'VGTM9V'A M#M5/6;HFHWM*2JA$K]PC#E]@JN>:DJGX>[B \N%!B<]1H+)Q)45O'>J)Q4O1 MXGG<91OW8;SA^PFV#N 3@,^ ?]^)\,2; _>]*8(S MMB+>>?'6>R\Y3_8INP2B*>8XQO!%S&:.8)Y]3L'74ASY.SA?AV]7%6XC_/H? M"O\BV*T2["+!]K\EKL5\?).$+7JJP=1QFBPIL&_C)"^\\\#>\O@F?\+':7\0 MII:M)6=T_F5C_RM$!UY* M9-/ZX&!%UHL&OH'_WI\M6FQAJ:2&SDG3$0MU3N_2XVD?\!'P0\+H5F<2*KD8 M\Q2,SU5.DR (%)0^, C#>J$=9 M^3:GMY144(M!^0"\T3,+2M'B>=IE M%_=QNCG,4=MX/N/Y@K^-:=B4)PK_(+PH,FM&8J?6]R*\<'KDV)HR.&,GXAUJ M=^B]%CQ-,G8-1#/F-&'X"I,N"(;L2PJ^E>+$_PGGV^&[386[&'[XC\(_"/:; M!/M(L'NSQ"W,WT6R54\UV"8.DR.E&;HXR"OO,J]W/+[)*WP:]J_"-K)SY&(\ MOFSL?VV,!Y22W&"I+?ZOQ5!0^W!\CV<[3=ED>-//'X@MO[CX#5!+ P04 M" 0DYY0.3D-\; ! #1 P &0 'AL+W=O/*B5>LRVGC?[1ES10-:N"O308M_*F.U\.C:FKG. M@BACDE:,;S8W3 O9TCR-L:/-4]-[)5LX6N)ZK85]/8 R0T83>@D\RKKQ(<#R MM!,U_ #_LSM:]-C,4DH-K9.F)1:JC-XE^\,NX"/@EX3!+6P2.CD9\Q2E I$*.-YXJ1SR9"XM"_LGV/OV,M).+@WZK6K-0.PX^DZ$&T[V'$=3A&"<1/R'VAU&SSE/>,K. M@6C"'$8,7V"2&<&0?2[!UTH<^'_I?#U]NZIP&].OWU'X%\%NE6 7";8?MKB& MV?Y3A"UFJL'6<9D<*4S?QD5>1.=]O>/Q3M[@X[)_%[:6K2,GX_%FX_PK8SR@ ME,T5MMK@^YH=!94/YB>T[;AEH^---ST@-K_B_ ]02P,$% @ $).>4%AT MB2NT 0 T@, !D !X;"]W;W)K&UL?5/;;MLP M#/T501]0Q4K2%8%MH.DP=, &!!VV/BLV?4%U\20Y[OY^E.RZ;N?U11(IGL-# MBDH'8Y]< ^#)LY+:9;3QOCLPYHH&E'!7I@.--Y6Q2G@T;@O&US.@F" ()A0\, M K<+W(&4@0AE_)XXZ9PR )?G%_8OL7:LY2P@-)254HI?^P0SW M,-6SIV0J_AM<0&)X4((Y"B-=7$G1.V_4Q()2E'@>]U;'?1AO^'Z"K0/X!. S MX";F86.BJ/RS\")/K1F('7O?B?#$R8%C;XK@C*V(=RC>H?>2\V27LDL@FF*. M8PQ?Q"1S!$/V.05?2W'D_\#Y.GR[JG ;X?O_*'Q#L%LEV$6"[8/*J5>LRVGC?'1AS10-:N"O308LWE;%:>#1MS5QG090Q2"O&-YL;IH5L M:9Y&W\GFJ>F]DBV<+'&]UL+^.H(R0T83^NYXE'7C@X/E:2=J> +_O3M9M-C, M4DH-K9.F)1:JC-XEA^,NX"/@AX3!+7YG_QQKQUK.PL&]43]EZ9N,WE)20B5ZY1_-\ !3/=>4 M3,5_A0LHA HW:'WDO/D)F670#1ACB.&+S#) MC&#(/J?@:RF._*]POAZ^756XC>'7_U#X&\%NE6 7";;_+7$-L_\C"5OT5(.M MXS Y4IB^C8.\\,[S>L?CFWS QV'_)FPM6T?.QN/+QOY7QGA *9LK++7!_S4; M"BH?CGL\VW'*1L.;;OI ;/[%^1M02P,$% @ $).>4)K*SYNT 0 T@, M !D !X;"]W;W)K&UL?5-A;]L@$/TKB!]08I)V M661;:CI-F[1*4:=MGXE]ME'!N(#C]M_OP([G;=Z^ '?<>_?N.-+!V&?7 'CR MJE7K,MIXWQT8&X"_$QX+N$P2W.)%1R-N8Y&)_+C&Z"(%!0^, @<+O R@5B%#& MR\1)YY0!N#Q?V3_&VK&6LW#P8-0/6?HFHWM*2JA$K_R3&3[!5,\M)5/Q7^ " M"L.#$LQ1&.7B2HK>>:,G%I2BQ>NXRS;NPWBSO<+6 7P"\!FPCP V)HK*/P@O M\M2:@=BQ]YT(3YP<./:F",[8BGB'XAUZ+SE/]BF[!*(IYCC&\$5,,DJK!UG&:'"E, MW\9)7GCG@;WG\4U^A8_3_BAL+5M'SL;CR\;^5\9X0"F;&RRUP0\V&PHJ'X[O M\&S',1L-;[KI!['Y&^<_ 5!+ P04 " 0DYY0^?K/Y+(! #2 P &0 M 'AL+W=O@7*U:_0+,,._-FV'()V.?7 ?@R;-6O2MH MY_UP9,Q5'6CA;LP /=XTQFKAT;0M05HQGV2NFA>QIF4??V9:Y&;V2 M/9PM<:/6POXX@3)307?TQ?$HV\X'!ROS0;3P&?R7X6S18@M++37T3IJ>6&@* M>K\[G@XA/@9\E3"YU9F$2B[&/ 7C0UW0+ @"!94/# *W*SR 4H$(97Q/G'1) M&8#K\PO[NU@[UG(1#AZ,^B9KWQ7TCI(:&C$J_VBF]Y#JN:4D%?\1KJ P/"C! M')51+JZD&ITW.K&@%"V>YUWV<9_2S9L$VP;P!. +X"[F87.BJ/RM\*+,K9F( MG7L_B/#$NR/'WE3!&5L1[U"\0^^UY#S+V340I9C3',-7,;LE@B'[DH)OI3CQ MO^!\&[[?5+B/\-M_*/R-X+!)<(@$^_^6N!7S9Y%LU5,-MHW3Y$AEQCY.\LJ[ M#.P]CV_R*WR>]D_"MK)WY&(\OFSL?V.,!Y22W6"I'7ZPQ5#0^'!\C6<[C]EL M>#.D'\26;US^!%!+ P04 " 0DYY0)MOK#[,! #2 P &0 'AL+W=O M_(M0"#/6AF?TS:$[LB8 M+UO0PM_8#@S>U-9I$=!T#?.= U$ED%:,;S;OF!;2T")+OK,K,ML')0V<'?&] MUL+].H&R0TZW],7Q()LV1 J"D@EKT*CS8X1-,]=Q2,A7_!:Z@,#PJP1RE53ZM MI.Q]L'IB02E:/(^[-&D?IIO#!%L'\ G 9\ AY6%CHJ3\@PBBR)P=B!M[WXGX MQ-LCQ]Z4T9E:D>Y0O$?OM>"<9^P:B::8TQC#%S';.8(A^YR"KZ4X\7_@?!V^ M6U6X2_#;_RC\@V"_2K!/!+LW2UR+V?V5A"UZJL$U:9H\*6UOTB0OO// WO'T M)J_AX[1_%:Z1QI.+#?BRJ?^UM0%0RN8&2VWQ@\V&@CK$XWL\NW',1B/8;OI! M;/[&Q6]02P,$% @ $).>4*A^';?A 0 04 !D !X;"]W;W)K&UL=53;;IPP$/T5Y ^(P2S+=@5(V411*[72*E7;9R\, M%\7&U#9+^O>U#:$;XKY@S_C,.3/&,]DDY(MJ 73PREFO:TZU&1.=]9%ID8->MZ.,M C9Q3^><$ M3$PYBM";X[EK6FT=N,@&VL!WT#^&LS067EFJCD.O.M$'$NH[M_8GUSM MII8+5? @V*^NTFV.#BBHH*8CT\]B^@Q+/0D*EN*_PA68@=M,C$8IF'+?H!R5 M%GQA,:EP^CJO7>_6:3Y)HR7,'T"6 +(&')P.GH5 M#&,7GKS+,/$3[+P$.T<0OR/8;TKT85*_2.(523P$AXV(#_/)+[+WBNP_$L3A M1L2'^<_O2KTBJ8> ;$1\F'@C@F^>( ?9N.9302G&WC7^C7?M[WOBGO _^#P< MOE'9=+T*+D*;1G#/M19"@TDEO#.WVIIYM!H,:FVWJ=G+N2MG0XMA&3AXG7K% M7U!+ P04 " 0DYY05-S59;8! #2 P &0 'AL+W=OM]_V),5>VH(6[,SUT>%,; MJX5'TS;,]19$%4E:,9XD1Z:%[&B11=_%%ID9O)(=7"QQ@];"_CF#,F-.4_KJ M>))-ZX.#%5DO&O@._D=_L6BQ1:62&CHG34,L$8I5$NKJ0.O2F#,[8B MWF'R#KVW@N_V&;L%H1ESGC!\A4D7!$/U)03?"G'F_]'Y-GVWF>$NT@]K>G+8 M%MAO"NRCP.Z?$@_O2MS"'-\%8:N>:K!-G"9'2C-T<9)7WF5@'WA\DS?X-.W? MA&UDY\C5>'S9V/_:& ^82G*'I;;XP19#0>W#\0.>[31FD^%-/_\@MGSCXB]0 M2P,$% @ $).>4':1&TBW 0 T0, !D !X;"]W;W)K&UL;5/;;MP@$/T5Q >$7;Q)MBO;4C95E4JMM$K5Y)FUQS8*>!S MZ_3O"]AQW-0OP SGG+DPI .:%]L ./*F56LSVCC7'1BS10-:V"OLH/4W%1HM MG#=-S6QG0)21I!7CF\T-TT*V-$^C[V3R%'NG9 LG0VROM3!_CJ!PR.B6OCL> M9=VXX&!YVHD:?H'[W9V,M]BL4DH-K978$@-51N^VA^,NX"/@2<)@%V<2*CDC MO@3C>YG134@(%!0N* B_7> >E I"/HW729/.(0-Q>7Y7_Q9K][6N4<<'F"JYYJ2J?@?< 'EX2$3'Z- 9>-*BMXZU).*3T6+MW&7 M;=R'\88G$VV=P"<"GPG[&(>-@6+F7X43>6IP(&;L?2?"$V\/W/>F",[8BGCG MD[?>>\EY8[8Q@7GT.P=="'/E_=+Y.3U8S3"+]>D&_2=;Y MNU7^+O*3?RK^K,9IVPT'';3!V+S+\[_ E!+ M P04 " 0DYY0@3DN_+8! #2 P &0 'AL+W=O-)\H%I(3M:9-%W-D6&@U.R@[,A=M!:F-\G4#CF-*5OCB?9 MM"XX6)'UHH'OX'[T9^,MMK!44D-G)7;$0)W3N_1XVH?X&/ L8;2K,PF57!!? M@O&ERFD2!(&"T@4&X;F!D@IJ,2CWA.-GF.NYI60N_BM<0?GPH,3G*%'9N))RL [US.*E:/$Z[;*+ M^SC=[#[-L&T GP%\ 1QB'C8EBLH?A!-%9G D9NI]+\(3IT?N>U,&9VQ%O//B MK?=>"[Y/,G8-1'/,:8KAJYATB6">?4G!MU*<^']PO@W?;2K<1?CM&IX]5LE5/-9@F3I,E)0Y=G.25=QG8.Q[?Y&_X-.W?A&ED M9\D%G7_9V/\:T8&7DMSX4EO_P19#0>W"\:,_FVG,)L-A/_\@MGSCX@]02P,$ M% @ $).>4 9>%1NV 0 T@, !D !X;"]W;W)K&UL=5/;;IPP$/T5RQ\0+X9MHQ4@95-%C=1*JU1MGKTP@!5?B&V6].]K M&T)(0E]LS_B<,Q>/\U&;)]L!./0BA;(%[ISK#X38J@/)[)7N0?F;1AO)G#=- M2VQO@-61) 6AN]T7(AE7N,RC[V3*7 ].< 4G@^P@)3-_CR#T6. $OSH>>-NY MX"!EWK,6?H'[W9^,M\BB4G,)RG*MD(&FP#?)X9@%? 3\X3#:U1F%2LY:/P7C MOB[P+B0$ BH7%)C?+G +0@0AG\;SK(F7D(&X/K^JW\7:?2UG9N%6BT=>NZ[ MUQC5T+!!N <]?H>YGCU&<_$_X +"PT,F/D:EA8TKJ@;KM)Q5?"J2O4P[5W$? MIYMT/].V"70FT(5P'>.0*5#,_!MSK,R-'I&9>M^S\,3)@?K>5,$96Q'O?/+6 M>R\ES=*<7(+0C#E.&+K") N">/4E!-T*<:2?Z'2;GFYFF$;Z?DU/_B.0;0ID M42!]5V+VH<0MS/Y#$++JJ033QFFRJ-*#BI.\\BX#>T/CF[S!IVG_R4S+E45G M[?S+QOXW6COPJ>RN?*F=_V"+(:!QX?C5G\TT9I/A=#__(+)\X_(?4$L#!!0 M ( !"3GE#B11M+MP$ -(# 9 >&PO=V]R:W-H965T)W^?0?L MN&[J%V"&<\Y<&++1V%?7 GCRIE7GIAIVP0^$_A".,0X; H4,W\27A29-2.Q4^][$9YX=^38FS(X8ROB'2;OT'LM M>'J7L6L0FC&G"<-7F-V"8*B^A.!;(4[\/SK?IN\W,]Q'^NV:SI-M@713((T" M^W]*O/]0XA;F\"$(6_54@VWB-#E2FJ&+D[SR+@/[P..;_(5/T_Y5V$9VCER, MQY>-_:^-\8"I)#=8:HL?;#$4U#X<[_%LIS&;#&_Z^0>QY1L7?P!02P,$% M @ $).>4$"ICX[8 0 '@4 !D !X;"]W;W)K&ULC53MCILP$'P5Y >(^0BAC0"I256U4BM%5[7][< 2T-F8VDZXOGUMXU N ML7KY$WN7F6%F8YR/7#S+%D %+XSVLD"M4L,68UFUP(A<\0%Z_:3A@A&E2W'" M!P*: GV(MOO,X"W@9P>C7.P#D^3(^;,I MOM0%"HTAH% IHT#TTU]=K=H" MO4-!#0TY4_7$Q\_@\J0H<.&_P@6HAALG^AT5I]+^!M59*LZ0.$)R0\"3,QOU(U&DS 4? S']60,Q9R+:)GJ8E6G: MV=EG.JW4W4L9K]_G^&*$'&8W8>(EYC5B?X](_XE@;6!V$7M=Q):?+/FIGY]X M^8GEITN':>@76'L%UG<&HO FY&["9!;36TRX"J.;2;P!>F4E]5I)[V>1^?D; M+W_S^"PRKT#VP"RR1V;Q!FBR@AK\3R+U!+ P04 " 0DYY0T8R+TS8# M #L#@ &0 'AL+W=OUT%9 MZI#K!DX6)[D]G]9CS\5\*@\J37+Q7%CE(Y4->#, MI_MX*WX*]6O_7.@GIV-9)YG(RT3F5B$V,_N!39XX50$UXG6_R,,!U ;0%T C:\&\#: =P$\O!K@M0'>K3/X;8#_&="4 MM\F]+N8R5O%\6LB3533OPSZN7CLV\?5RK:K!>G7J_W0]2SUZG)//ILZQ(FHQ MCPV&+C!TB5D,,9\LCE;0R2 DXY' %+PW!<)XEY@EPOB7F">$";!8#FO&:P)^ M01!B @\2>#6!?T[@RO2%.L:XD)$ $4$0,2X)P)@ M K\27">%@(<[&?74#A]\W: M@**SE:=13^\2@!B-#.\Y,W07!M0$_?;"AA/UU2QN 3T!D#B!$5!L M2AJW!\9O?YT8;A#, RJB?MV\@7\I#/MUNPZZ%(.;#0/=)A@;*'"K8,$=)<$F M9\#EH=LO"0(9>@G#O8!%@,+031CN!FQ\>[:$;4S QH-L(4'XIAM]6 @ 00< !D !X;"]W;W)K&UL?55;;YLP%/XKB/?5W"$106J(IDW:I*A3MV>'G 14P,QV M0O?O9QM"B''[$FSGNQUCCM.>T#=6 G#KO:E;MK%+SKLU0JPHH<'LB730BG]. MA#:8BRD](]91P$=%:FKD.4Z$&ERU=I:JM3W-4G+A==7"GEKLTC28_MM"3?J- M[=JWA9?J7'*Y@+*TPV?X!?RUVU,Q0Y/*L6J@915I+0JGC?WLKG>N(PD*\;N" MGLW&EBSE0,B;G'P_;FQ')H(:"BXEL'A<(8>ZEDHBQ]]1U)X\)7$^OJE_5<6+ M8@Z804[J/]61EQL[L:TCG/"EYB^D_P9C0:%MC=7_@"O4 BZ3"(^"U$S]6L6% M<=*,*B)*@]^'9]6J9S_JWVAF@C<2O(D@O#\C^"/!OQ."3PG!2 @T AI*47NS MPQQG*26]18?7VV%YBMQU(':_D(MJL]5_8GN86+UF7N*FZ"J%1LQVP'@SS!V! MA/IDX9DLMMZ"[CT:Y$N$Z\2/F-T2$Z[,*7QCH;[BAP^%>F:!P"@0* '_0<#7 M=FK 1 K3#A@W=!RM% /*3V:HAS"A,4QHJ"8P"T1&@/('"0V!HD-02(M2+P($GFAV20QFB0&$ZV2;;(P^>)_<$!61I.5P231 MMFNU,/G 0O12X^?J&$Q6^O?J+%Z*&_C:*NN\Z&;WV6&R^4GIN>J9=:!<-'E5"\Z$<)!9'2>Q DO MQ7TV36HX<3F,Q9@.37V8<-*-%Q::;LWL/U!+ P04 " 0DYY0G_\?[@ " M !Z!0 &0 'AL+W=OMO)UD".H.I[83KV]0/%?04/G .VCU2KE# 8P9(BWCS\CI3RU-X7S_SO[%>M=>3E1"P=GO^J*JO;_QO0N4],;4,^^_ MPN@G]KW1_'>X ]-PHT3W.',F[=,[WZ3BST\,+ZNCYIO .Z*'>39).SM[IMU*G;WG MX3;(T-T0C9C#@ GGF(^(8HV(MQ,$:0&3BM"I(K3U\;P#V;@)B). 6 +RP09> MV!@PB<6T%H/38.G$ 8H_DQ(YI40.*8LNAP$3S;J039PNI*Q!48(_&6OLE!([ MI)"%E'C591NET7(L:Q0.TA!';C6)4TWB4!,MU"3K\0<*-&7PH"U6^B*< @:E,MM4[\5P'0R!XMUX MTZ'INLW_ 5!+ P04 " 0DYY0?%FS*BT# R#@ &0 'AL+W=O>".V,O^5[=5I[2>^MQ<'?L[5D[Q^$4-" MD>\-V7\3%Y%K>*M$C[&3>=/]>KMSHV0QL&@I!7_KGUG9/:_]%T:',#B # %D M#,#A/P/H$$"-@*!7UJ7ZB2N^6=7RZM7]OU7Q=E+@>ZJ+N6L[N]IUWW2VC>Z] M;$@:K8)+2S1@'GH,F6+FB*V-B-(1$F@!HPH"JB!=?#13P6 ""A+0CH#."&(C MC1[#.DS98Q)$"39R 6 QBI,0EA.""$C:*$,+,L$$Q;WB$(MC*&O.RB@.V'XQO* AL0)TO*DMC3($RI518(1F+7 M;($-C6U'4^2@(+ /"5I>%@+[D. %91E \R4TIS*"/8TL3VMST<."MB%)+WA8 F[D$*[H7E6&4#30R.F MH;4Y0["0,O.H$4P.[^UMZCNOCUG9>"]2Z7M =UH_2*F$ID1W.K>3OL"-C5P< M5/L:Z_>ZO\7T#26KX886C-?$S5]02P,$% @ $).>4/<43HZ< @ "@L M !D !X;"]W;W)K&ULE5;;CILP$/T5Q >LL;GD M(A*I252U4BM%6[5]=A(G00N8VD[8_GUMP[+!&6CV)=CFS/&9,<>9M.;B19X9 M4]YKD9=RX9^5JN8(R?V9%50^\8J5^LV1BX(J/14G)"O!Z,$&%3DB09"@@F:E MOTSMVE8L4WY1>5:RK?#DI2BH^+MB.:\7/O;?%IZSTUF9!;1,*WIB/YCZ66V% MGJ&.Y9 5K)09+SW!C@O_$YYO"#$!%O$K8[6\&7LFE1WG+V;R];#P Z.(Y6RO M# 75CRM;LSPW3%K'GY;4[_8T@;?C-_;/-GF=S(Y*MN;Y[^R@S@M_ZGL'=J27 M7#WS^@MK$XI]K\W^&[NR7,.-$KW'GN?2_GK[BU2\:%FTE(*^-L^LM,^Z>9/@ M-@P.(&T Z0)P-!H0M@'A>\!T-"!J R(G #6IV-ILJ*++5/#:$\WQ5M1\17@> MZ>KOS:(MMGVGRR/UZG49!K,470U1BUDU&'*+P4$?L[['D#YBRHP3!""!*$E"'L$CLAU@TDLIK08)]'-&*(G(@)%1("($":(08+X M\3(D($$"*(B<,D"8V"G$.*8G9 (*F0 $B2,$PDP<(>.8GI I*&0*$$QA@AE( M,'O\3' VS!XX%1 D'LL_P'UQ0S<"?B!DP%!,U?,.*@O!K8])O<49,!R^ M#C]P/K!M,>1;]_)H06.WQRBD+P2V/XZ! M>/*!JL/&Q( S2=A/=@6"HH%]8/_B&4 1N_O,'BXJ@4U. &N29( "MB;!CQ>5 M#/R/0H9RDVU!M\G>72+HIL)W*DY9*;T=5[I=L4W%D7/%-%_PI!6?=6/: M37)V5&8XT6/1=&?-1/&J[3Q1U_XN_P%02P,$% @ $).>4)9BM]"@ @ MTPD !D !X;"]W;W)K&ULE5;;CILP$/T5Q (D: %3VTFV?U_;L"R!845?X@MGSIR9B>U9W;EX MD1?&E/-:%I5EZJ7GR>S"2BJ?>,TJ_>7$14F57HJS)VO!Z-$:E86'?3_R M2II7;KJR>WN1KOA5%7G%]L*1U[*DXN^6%?R^=I'[MO&Z)77L1SSDE4RYY4CV&GM;M!RAV)C8!&_* M6,$R92BH'FYLQXK",&D=?UI2M_-I#/OS-_;/-G@=S(%*MN/%[_RH+FLW<9TC M.]%KH9[Y_0MK PI=IXW^&[NQ0L.-$NTCXX6TOTYVE8J7+8N64M+79LPK.]Z; M+S%JS6 #W!K@SD#[_LB M ;DW2"PP3?*;*B?J*+I2O"[(YIJU=3\*="2Z&1F M9M/FSG[3T4J]>TL)CE?>S1"UF&V#P3T,ZA">9N]<8,C%%H_,\:.#W1B!_!AV M0< HB"4('Z)(8(( ) @L 7E0L!BDH<%$%E,UF#! 9 #;0; DB4-83@C*"4=R M"![* 3#$'VCY&/,@) *%1..\8 P3Q"!!/+\R"4B0S*A,,DIY$OL$#9(!H*(H MF$C' A2SF%$7 #.2 F$FTHI\^-SZ0&6""8J)HX_FUP:!1WN#\(SJM*!^XDF$ M(C+("01+@L7$/8#@BP"1&16"0&0D!P)-)1B^5!!PJ^")>P#!%P$*_Z-&\!%& MP!D>UR@:)]]?!.$P*0",Q&1*$'PEH'A.C<8@' 5#.0 3&2;8ZSV%)1-GVS5( M)^/72IE'I[?;=28;;)[2P?[6="SVB7VG:=J=[U2<\THZ!Z[T0VV?TQ/GBFF- M_I.NW45W6-VB8"=EIK&>BZ;-:!:*UVT+Y75]7/H/4$L#!!0 ( !"3GE"@ M6GLNL0$ - # 9 >&PO=V]R:W-H965TH?'A XO;M"YA:26KUC^%>SCF< M@Z$8M'FV'8!#+U(H6^+.N7Y+B*T[D,PN= _*K[3:2.9\:8[$]@98$TE2D'RY M7!/)N,)5$7M[4Q7ZY 17L#?(GJ1DYO41A!Y*G.'WQA,_=BXT2%7T[ B_P?WI M]\979%)IN 1EN5;(0%OB+]EV1P,^ OYR&.S%'(4D!ZV?0_&C*?$R& (!M0L* MS ]GV($00P^RX%9V&GQCS>N*_$&HP9:=A+N20_? M(>59893"_X0S" \/3OP>M18V?E%]LD[+I.*M2/8RCES%<1A7U@^)-D_($R&? M"-G=IP2:"/2&0$9G,>I7YEA5&#T@,_ZLGH4[D6VI/\PZ-./9Q36?UOKNN:)T M79!S$$J8QQ&37V#R:\3N(V+U,$&(-S"YR&==Y)&_NG)Q/R] 9P5H%*!7 IN; M&"-F$S$J8K+%ZB;('.;NQ@BY.-MPUW\Q<^3*HH-V_C?%PVRU=N#UE@N?J?// M:RH$M"Y,[_W4#M\.Y01 @ MUP4 !D !X;"]W;W)K&ULA53K;ILP%'X5Q /4 M8&YK!$A-HFF3-BGJM.ZW0TX"JHV9[83N[6<;0@GQNC_X]EW..<8G[[EXE36 M\MX8;67AUTIU*X1D50,C\H%WT.J3(Q>,*+T4)R0[ >1@28PB' 0I8J1I_3*W M>SM1YORL:-/"3GCRS!@1?]9 >5_XH7_=>&Y.M3(;J,P[&NCE;.Z93/:AK%I[=@/)^F5YB;@D8 G@O;^ MB!"-A.B=$'](B$="O""@(15;FRU1I,P%[STQW&Y'S$\4KF)=_ MJ7L#@&08G>,(@K3^98)?)&M\)1'%P:[*YQ^!;Q/8>D3RZ MHXBPS.4K=)ZC1) M'2;QXD(&3&HQ[5BN- D"MT_F],D,T6OP>V_^AAF#0[+=G($ZV MI4BOXN?6MK/9[M2UGK!]-N_PH>5])^+4M-+;ZR MTX+"49EIIN=BZ#7#0O%N;*-HZN7E7U!+ P04 " 0DYY0-4M2 CD# 7 M#P &0 'AL+W=O-=8Y2E#A#B M.UF%3>WWB1_)X2CK"6K3J4%R%>Z\'7 MW<(FM4<\Y5M94\3J<>8KGJ8UD_+CKR:UKVO6AMWW=_9-$[P*YB6N^$JD?Y*= M/"[LT+9V?!^?4OE#7+YP'9!G6SKZ;_S,4P6O/5%K;$5:-;_6]E1)D6D6Y4H6 MO[7/)&^>%\W_;H8;@#: JP%U/S1@VH!--7"U@3O5P-,&WE0#7QOX4PT";1 8 M!DZ;W6:[UK&,E_-27*RRK;@BK@N;/@2J(+;U9+/_S7]JQRHU>UXRUY\[YYI( M8QY;#/0P01^SPC!A'[,>8J"/^#Q$4&*LM!EBO*@/>?J8QE$)N68%T*Q 0^!U M/:4^3L!0 M80L%XZ#"_7+29H,'F#(3,2X:NXZ"KN2N!-C]-'"7S$ M VK$V6+"3IQL-K(; ;I(@"P".$&($H33PXQ0@NAVF(_1($R8F?4]Q)#92"24 MX'HEB"MLA&)$\G1Z.BBN#PJ(%ZXI=PSDF6K&0&/.X%JCB-B\D0*CN)"H>T=* M<"E1#_$B-/M;"_([!4#-WO41I.\(+DDZU&0GZWT&7&\TN",;N.)HB&3#;( : MY'9"=0,6A6:)8##JC71*BBN8(A+VB>D0IO.1W &N3QCJDQ*C#:PUR&C]1B5L M;J'Z[N!:!WK[(%IIT+23"$9.3$3'OMDB-:C;_]S92/,"7.R B-T?::& BQWN M$#O@8@=$[#XSQ*Y!W;H-/6+4W!."8N"3D6,<<,T#HOFQ#QY<\W"'Y@'7/$S1 M/ S%#$%D-LK-35C?(5SS,$7S*,C%UV&XYMD4S;-)FK^%:MUQ.E_W]97Q>UP> MDKRR7H14%X7FUJ^!>B_;JUH[D*+0UU#G>A=> M_@=02P,$% @ $).>4.P)1D7X @ 40L !D !X;"]W;W)K&ULE59A;YLP$/TKB!\P.!LP5$FD)M.T29M4==KVF29.@@HX MPT[2_?O9AE)B'U.7#\%VWCV_LX^76UQ%]RR/G*O@I:E;N0R/2IWNHDANC[PI MY0=QXJW^92^ZIE1ZVATB>>IXN;-!31V1.,ZBIJS:<+6P:P_=:B'.JJY:_M % M\MPT9?=GS6MQ7880OBX\5H>C,@O1:G$J#_P[5S].#YV>12/+KFIX*RO1!AW? M+\-[N-M 80(LXF?%KW(R#DPJ3T(\F\F7W3*,C2)>\ZTR%*5^7/B&U[5ATCI^ M#Z3AN*<)G(Y?V3_9Y'4R3Z7D&U'_JG;JN SS,-CQ?7FNU:.X?N9#0FD8#-E_ MY1=>:[A1HO?8BEK:[V![EDHT XN6TI0O_;-J[?,Z\+^&X0%D""!C@-[[7P%T M"*!O 8E-OE=F4_U8JG*UZ,0UZ/K;.I6F*.".ZL/"/4*(6'$+:H- J,Y M@SE!N$N!;U.4>6Z=>#NQE!9N_:(PDLRX)N!.!;Y5 Y:#P&A&/<^))HU(P[N#[=EDL!7G5IF__,GJV!?>$]/(..MKTR_:!N>- MIF\VOY7=H6IE\"24;I-L,[,70G&M4E]3&!QU?SM.:KY79LCTN.N;O'ZBQ&EH M8*.QBU[]!5!+ P04 " 0DYY0Y< E*1<" "!@ &0 'AL+W=OD/Q7N !1<.U$G5$P M(LS7*\Y",CJH*"L4O]JQ: MG8!L*J8V>RQQGG'6>]S>;H?U3Q2L8U7]0@=-L*H]0T4L>)4F&+EIHP&PM M)IQ@PF5XC=G?8H(1@92#T4;HLK$-;^A1DEX?L;O%S$W<0UR9B)RUB P]FM)7 MB5L@=@K$1F!YE<4GM\#2*;"\<1"EBUD9+"8VF-:ZG-_8_C[FRLC*:63E,/*/ M"TV< LG'2Y$Z!=+_EV*;WJ89S&\<35X"!7XR749X!3NW4O\KD^C8R!Y#_9)F M\6VPWME^]"YCN^,WS$]-*[PCD^J=FM=4,29!65P\J!+4JB&/"P*5U--$S;EM M2W8A63=T7#2V_?PO4$L#!!0 ( !"3GE"(BG]<)2\ +3, 4 >&PO M29S9?:!Q!HDAB# (.+9$[EQ^^Y] WH!D5Y)LG4MWJ22/;E=/>YG].G M?U=5==#DZ=\:<5XT>?W[;R8GXV^"+ZLLKW[_S;*NU]^^>E7%2[&*JD&Q%CG\ M,B_*553#QW+QJEJ7(DJJI1#U*GLU'@Z/7ZVB-/_FN]]5Z7>_J[][6\3-2N1U M$.5)<)'7:;T)+G,>(2WRX""HEE$IJM^]JK_[W2OLP_TFP8#G]NHK(69;8)/HIU M4=;=AG79. /JSC>B3 O<@"1X&]5..[6>?_^W?]L.=!GE54H;YP=B'F65,[K< M]G=I)H*K9C439;?%<#@ZF)Q,3IV99=>/8I%6-4Q>!U?1RIG@/(KKI@K_\S]& MQ\/7EWD\Z!D&?BI* )N./@QN:]B*H"@#PKQR W\3=PLO>@:[B[X$EPGL2CI/ M8T8F_^(F1P?CHY/CT?"X9Z2S) $,K$+U3_ ^S45PG3NPG(Z'P0>Q*LHTRH)S M[/ICM(%U-"FL8S+LVST]/G6!]=X5#WFW[?=%4]6%\W5W"+UG-V5QG^:Q ^/= M?S\VQ$U1U0#__TO7W@V?3H?C0^>$:00@=7^7T:3[U?LBACENED7>AW/'X^.# MDQ-WT^[2&O"TF >C\=YB/[@5<5/"[ Y$600G=0;PK%9P]+=U$7\.@W54!O=1 MUHC@Q7 P'#ECEU&2YHO@=K.:%5GWUQ^_?]O]2LT>7'R)EU&^$%[\O_K+;1^6 MGC=EB93+Y$ISPPDV#K_[B\L"-=$ UP$"2^\%\HY(#;F%RH&B $L61>GLVONH MA#6W5V\#=Z@B-KI>AY52](B8OQ'_*U) M@="AN=,0L!OE2164(A;0:):),,A%C3P%\+EXB(!MXH<7H_!P,J0Q7YQ,IB%T MJ-:"*"US<.XROX?)@/6[A'I3BG64)H'X OI1!1N-(Q;U$N@PWKJDNP(9\?8V MP.?7HH0CQ4%QU6O$#UI0M^GU&FD:23$3426",ETLZX-B?M# !Q[=V^\/19$\ MI)G##]^*N0#0DJ &44O]_=/22O,BWV6Q/6V9I-$LS4'#<3=:GNHXV>*2> MWT$!VWH(6T97 !"3!@( [%"M-X 6&;'*NJ"=,&@51(M2B)6'&;]+<\(R/HAB MEJ4+4E'@ .+V5(\=H@7THWW;^+1EN:V3U0OUGN[[IVR#IK-' -VR/;L-L'67 M=AN"-VL;3@ O3&M<%B-3# 8)S"CRV&V,!M.WU3J*Q>^_ 8NH$N6]^.:[P%$G MD*\NBRP19?5?1,VN8@/<1!Y.Q=R;-!FCV83!:!B"!)2&4Q U]1+8TL\B"9$( M19!6%1("X7\_QP=UD P)V -D7@? M>-HG<*>=%M^%#58=$A:49G#2#[2;%8- M(X>D.)#OI5@"(:+6DA6N\L"[7WGV(XCJNDQG34VH!A0+=#"M _[)8!04+"A M;BOF%;"+U'Q/#K>_1/P.T,HKG:@UMU3!&U0% M+W-8^G95\&('59!99GNG)P\JX?YCVMSE-FVN^^6;*"/A$=4!S O<=Y'F M"")R(?QBS8X8^-GV09Q\Y3![?(S[CXY'_EKRZ, +?7_U0>!;E'01"^\VN69 M(1I$QC7,6\KI76%/0P'+J!B#/>;.Q7PN8H+B_,?@4YXBZT[$:NV5C5L;!WN MK'+]_4 CS(GC0&"AO ,$_>;)UYCC%]*R>(C*)+@'E/+AKK?1ML5>>VP=I2%D M/@2G\S\ V2 2Z@9](M]9=9!0H 3L8O%6_>[1 6S\?FI$J-C$VY1[\?#%\&KGC#J$V?= MNLV]N[Q-=3B[_3YX]_[ZQ]U=Q#3G'&S8JJ7! ZY0$,3KJODH0&[$8+%'RGMG M*<:H%L GLH%-FK<#XTX&<1CC)S-2?ED(:%S*HB$U4L/.% %+0!# 50 MK8L*N"Y-+\ MNBGC)3F0YSWLS]FA759KE!^A@KX8*@UBB?M%SF/N$HN2QG5)3NKT"1W?V!*2 M98T#)PLC_X^WS7J=D2X$J =;&H-"0IB'.AW._0Y0P,[$\2"B)^X$VP;_(I=H MO3/1YD./]*+)L*:(D#-Z_/^].!E^IKH,64+"2 M*$#"9DE'DP0/RP*)-,\V >":H.P9M@:P>:[\_LI6IV6GS,=@S4V>DLR0&T,Q MGW25XN:9$)V:2HU!$LH :^!GRZ/JA1XW!Z4I0)I'E-; [,?:?1R/^#<)#&&" M0V"W5AAA5BKB3"9.L-XPGT=I67G&@:[H2JOHQ'2?>ED6S6+9;=P]U4%PAEL. M:VZR.FRMQF"/X'495.3F/F 3T8V>?Q@I//X,A%U]B ML<:H-DOLAY18>8))9QCP0K^DY(FP+DFVM?@"IX&X0)$,U,Q(EK7(*)1SJ&\? M1/>;1B$J'8/\LFA*]2T-WG%5Z6.TSC_IX PRIB:/@.!KP0B(VE/2[N+E7,OH M'LTWD2,/6T>L+U)PJ4Q($CRD]5(%FQ!#UB6<90JRJ%)! 6 #\#MLJ6)_@A $ M/A&#I=,]6P&;B"-]0G\X.[O1W W5XE1R9P-D:F39 #.< ""8/]N$.$,E=EA; M4A".,BL4='K6H'C2\+.H6N?M69-_\0ATE.<-3.F='$^M ILH@V%!X0#."^>Z M$"1C:$_AV(,S'H"3R5 1>0?0!:/AP9]H?-S*#:8K"4R:10N:>9>RHOG@']\( M>PPZ72A]>#!*\C2;*,('%TZ$B(U M)%#;C&-4,<$FP9@WL%FX^8/@$ZND%R#"5H30EXI:2*0UY4Y'@(T0^5"\$0(@ M#< 1H&CZ# W0")@0@="3T-BIJH:Y:>KEU&-<@>U60310DS>">3L<;'(4VW= M)EI3-&9'V,ZN8&D=ZBAA*Q0W +TA6 '",)!,>?T0SD0<87)2#%IB1 :,(3>" M'E:+OZ?HXD'SB3 $U/@&\2Q "!"^& @+S@^.)8ZR6+J?F1$%RQ2$:"+0,TC: M,EKS;%RC]1/=1VE&TB7!U$ID+%)0:=2-HS4U@,XS@7N'M(DH8LW%+KTB-TQ@ M!91;)$56+(CA @94*-!B5)-#=U]@,8 >=8H#8HIYDL[G^$&Z40%=5Z 6A+2! M#W*'Q1=1Q@AAE<(18A(T;,Y/3;) #$(66#>6J(^)M>"XP!"4&@8ST3:0;VL[ M'JF38(:];NO*.^'T /A6C))6)VR#Q)8';WNWT3G2M&5-J3NRBB%)0VD;.M.' M^Z\M'9PFQ=]LHW:I(1,8]I9+ :EB:"$,L43 KBPBMYY*<"_!5B^\5 MFA3-Z)W-O1>W:0":?JJO D/'!LK6FW MCX_"W89/2#V*@6=RS3)RJ2BXVX.101$QN\(5A7K/2(>*D-U:P1>OJ,21C =5D74'(#NA&;">B&8 MF+B(G>0W^R!A1W(MW& _(M++C)"%:6\%Z@XE-<)^A.;TS M%6Q))IFRJU\LU$2X<6E)? (T9H&$G4>2^XEU,-8ZGSQ<7T>02X#9GUJ8J^ ( MB1 Y\1U$ )(2&]-] R$8Y#$@!"/M#950-A*)0DM]70/=#TSM9%-%9;DA]^%* M^_@56R'):4\%S!)O6R@-47:9;:0:34ONC">^L/>7%4X;!DTM!E0^$6(\&@9M M1# %XF@T6,W9USP++%%O#3**V)CNQ+GL>;N$ 73^BRC#3:4H\I@N?# Y?TRK MSTS4GW)).?[D7+M7N&,W?YKN>!#L.%QP:ZE:YWAA:X7NB&MP1-I0'MP/T1#S@+1KX M>]:@/Q/T\P$!88E( H-O9S+?C=!DD)XL#2R0#BB#/Q5TQPE^L P\,IN*LM(< M-4MQ=5+E\JT(;"8$9S- LY2Q;HEJ]XIOZJ-*K6^I[L*HJ7E&:#T\&^D+E+ MY@J,E"] JMW3-($B771V0H_HZW9> 5HI8P!H7$Y ; /ZOA@/3H,5\ N%K2]& MX\%4?=,^%F)+%;H;%R2QC$\[6@.2?R'5!E!Z^E+"\%*S2#.,VEUU,LR_ +0R M.4!+::,@-,!CNF'TH&T;V-4YYITNA:8M>Z-#NC$[W2838Z(E!?KS^BA%>&"01*_(+ M\"ZH;FA-KC.E!K,7!EB\=,;CD4'7-<]/%K[TE17K MT(>#&.DJBK+N?+@.;P MY"P6I^P ::KK*8"D*8D2[?,8OR-SDBWG\@-A M%3E"4%F;S]&!B;/-YQ@(8N)76)#FAOGR@9).J3P5#R+Z+) ] @67A5;F10[( M7>1,W+!X5$[I>)"12AVT^/9Z>O@Z.@,V9B>4^ ],6\^#BBX@;8GK7Z/41I<8G]"MA M$@"HX:_U2+?TV49DXD;2L M*0R'QO(..!FI(@]%^1E^0NNQ!0.!, )(V&U'?L]M MH6B>0RL66D4F2Q%CI9SW8^T:K.0,V& FD:G'UI,TPBVM'37C**,/A&[PU@BD MA"0KN1X5OVU304$Z(:\R5HD?R()^$@IUVN1E,3 6J+(S)J)(EN7*BDHQ6]!5 M/U/&!>VA3&]B1H2.!P3T8VHUH[0][@5"5;F8_27?&/:CDZ'DO MM9'0M(P$<^\!%0X[,TF?0<7ZNL] Y:WB?Q%+)S]-AB?C/_ISWI*PS4S$$F@3;=B>>E<]O_(T>6 MBAP#4Z&L6 7<=&("@((S&V^\90\SC !-5B\I.(_.+N6< MMV!GQ8.1R7NR$J]V( (M8K;B/ZT7MUDFM*'I@^C"]ZF47XX&E!'.INPX*\B- MT-K$@7-]56?P?;1RK@':]I7#EG.Y.\1D$'S%*$C>XDN-2:C2E8E>1:W:2;!E M.!)&+SD"I]28@<="!VQ-"J04PEYESJ(9R[DDJ:A:1K?7O%X"8AS@^6-3#GZR MOKU9HY*+@9R&4',R1(@/CX(DVK 8DD[2B!(831X%IFH*8*I_:P2)$LOE[-&/F XB.1[8/> M,CN1_+HHLO9,:(]5H(T2XP+Y1$Y(M"1*S*B**\.DM*^E2G]&ESL/SBFP%6;- M4,XG,'XTM(#KSJ+\<]FLZWA#WKS&SK65?#KXG!CRXE M9$2*)R\.K'81H1G\V,GQ8K6)P#ESF% %+>GNB71Y/#J$G5C:GM/R6#WN""K% M')=3M:+ B7;JMGWS/FM+B3R+1J7+8T!1A^'D]6_NKW6QXY\X="NK5WUYP1KB M5\\G\X#51UEQ: ]5'^#?F_W@QQ+KDX&Y)\,]LL4=889=9J^+&6K(%\')9&I] M.AX?69_V)N-]ZR.IT^/7UC=<9N>1Z8!;JQY'T^/6(NW1NI_'5J\3]7]7Z3A$ M+JO+][3^)S%>$\++.SY 0]))7K S _,1@<[0GD'4EJ$7NN'LXT@Z.D+]]Z1' MW7@^*WW]%QOLRY2.SLU@#EU7/(V5D)4SLXFUE%!YEPGHAD"M6323F3UX]FB3 MTBR#X,JS")7O:FB^XOO[TI14P0M4O-%N=Q6K,* \+QU^W9!:E<8<>N6;^K23 M:#.S,:@OHI">A)>$*52KR MR$XI@!T-X71P8VE6$2]S2LU!L5$8NU4F^).^C-:#9(&6!Z^F5&:E([712J8M M*X[9\@']NAS&T(WZIJ7Z:-I &B;*^FC[Q5N4.1V.6Y^/)B?!CT7Y^2#-#V"9 M"ZJ'J!I,PI,CPP<.PV,8^IWRL:/)8IJ>'H;30S/T:#@-QZ-#9R4PY7 83H8C M^YO1))Q,1WW$W+I4<+&U(-81)O7WM@[ZKCBT6 *3#VF%>8.X1;EQ'"JJ2RR! ML)*U#LC3]H"NR]Q4ND)_C9;%K2'F,@M,)=G!IPW-+>4QFWIZ&ND8TV>"@?9, M4988]"U&(F7U6\3*]RJIF<]]$L(_SN":&5W1[2\. I/QL?VQ\/3P^ ' ?PZTTDRK?LMSHK'A^'IY-CW]7AZ M%,@B%^[,H^-30/FI]7D4CHZ.@W=-F:?:AIRG7]C[J)N%TV.+HL+CDT.ZQ]'4 MRJ"KBGG]@"AD"/9P>F1]FHRF6*:1(LM>=-%+. &J'!NJ'$^'X13FXU(,]BW_ MQ+X@J9KOC29#X!63?>N;,4Q_.MTG2?3([*/#T_#P^,3Z/ TG)U.,TON)03>$ M!5LX-#H,)\^QNQ Z"ZSPX:Q:8\CF6509"^]J&(-\!FLOHNP*\N1<'E 5>B1S3 MX"I,SU;N)7G['&SM(KNW$N& +7%D3:;-5AMYPX%*X:'=(''LCS(-6(5A<#4X&U#0KE/K!R0N'"L*SJJ!A=KC1)PM4U4-)?W!,(S"R)LH ,F- M@SWD6BHG\LU[Y1=Z)^%5.9)L$7D:*!.=O1LOID>#H78&<)Q);80I]P;*PAJM MV!<-ZS1T6(DJ+ D>,QQ/NLXI :VQ6 MRK% JHEU]JBE@,97%@]65I]OGK2R/=B1[,1;7XG0K,Q2J2S3&R]#9NF"35Z? M3P9I2C5(U$F)ZRR$:0X3L2N= MK4(ASO;9]U. "BA[0/)3*%[TD0YA7)903EL#6[NVS]:3X@"BU/)G=!$-R^LJ M&_NB*3&E%=T[UNCHYQH-CEX&ZXP\+\8#0A'$4M)QD8L##L^"*79 /H'@_>6; MZX^DX!#4%"/%K#[K,D^&>@8<:82'OAW-O,&9GNICW:^GJ/^S"Y QWZ0EL7=! MW3M>DLN<;TD;-ZQ*)65J!Q$J+S7I!%Q2E*AR%8>TS/V=SNT?*I[*%A90 M*-W^D2DBK5R>JCZ0CM*-7<=R0+?)&!8=7R)K)V+I)2VLJIU_)T!GH2HN $6M M7*W,5?38[9Q#8J3*O;7\C-3A9L$Q!.AD/34MR!X M5S@SKC#"N^X=GUW)"@\U,BET[#MT)2?X=F[& I^='QGF\K5\":V0!X7!="38 M10^-%!2G\<.,04!M,:4K';ZS<$%\L6^36:AAAR%LP%18S+JFK%T8Q:R6>0]Z M*QS5WLFB$R#U 3):-JR!:J'!"? UBS MEX60O39E:F:B?L!P#(E/2:L\86O[K=UG-:%%032WO7D8)%"I(5'MC*"2FA ; M2"'%C$7R&FEM(Z4($6*-S&(B81.1BUM6G9#B7MV4EB[\^PC5"R-WJ8UAYMIA MINYAJ%LJ*JR!B.#&Y?I8H:H>#JA!95%4]$9)("N?UF30XL($Q?$R#$2;,-@" M?7.YK,T@:X_6J;P\5Y<"MK):INNU2DT$OI-DLM!*@::62KP#I6(&R(9 D .1 ME&I4=N:P\]+\IP*7H I$"=_H0QSCNUM]M$5@Z,5+G*T,OEI0^,'DVS3JI@PK M^C(-(E Y6)C %V5RS2#QHL4"4+:D7/3FUW?4//7O5L^]Z];IE :UHPC3<#@QMO71-'AI_WH<'A^: MH,/1$?S:+A3J0#8Y#D?'QMX?3ZP!=9N3\/#4.%O&A]#FD0JC[AC#\/3PR%JK M;YY).)T8G\5X!&U:]71MG\+183B:F(C':#AL;<7HZ"0\L3PW[=\]EI*R>DS! M*36I2CZF]PZL0#AGLINXO!L\;_<\5#W1M]&9P[HY1D[0ENJBQ8W65U#7*Q7S M,=*>KX-KV6+2"QZ$RNU%>U.ELF%M+$X<0!4JN>=X(U_^EAH,"B5]=4_OC!)+ M%G^W]:G Z/.H2'NU$52;S_KR<-2M&$XTS#===2Q"8P),94S2RD2^X"S9!?)] M=64L8GE)LD45QY! M7.([,2OI8AI[PAY$VP.&.P"S265;YOW*\!CGK,D/6(O$*VOXB+@] U2U)(,!@H*GGG728WD)^& M?B!)K;*FTS)N5JBED8EACT?$5%)96%K'#+9EGFK%VZ0+C_1:*W>U9EM-29^T M:MVPW^A(J\YL@/7QQ5/+RX1CZ$)'JH'&'IV30CI+,,LX(8+*B%(Z/!\3C\IW MY;ET"R=O,C1J_K06I4DQC:63SQFS&X&Q#],^NU*=*E_D;59\_V=&H>4M9T[] M$G2'Y*H 3;26EXP(%55RCN534K8=#3L(;K6F:F*@A>^.=^V<4D=1EEA@7X2= MZV(^J'L:2P:-JKJWJ'H??S5W&0T,^F( D3VG?!U;HHXXP8O1X>#8\OZI&%N: M^QY,,>9M;2,F8%&^@KW7^RM+4.F,( @N)Q3\TQ-U&V![Y4 H]M#!D>I&KI%(G^2MYH4F\.' MS/A.)!4G(_T^5!ENA?0YZ[N93)LJ55YY!W61P+ER@^V'':7(P0[*08[TFVRJ MR,>#*08DZPUA,40LJT*9N\ ?4C+BI,2!1IR^S#XWOG&GKS036X!3B],U7\UE M'4$C+.L2E'(!3*3IPLAW0-$;)&=S]1#+CI=UAA2_E&4/MLRN5#*F.D9%>2AV MUCO=1&-!Q04! BHI#;QNJ3@/ &MG?DA[M5W*9"_=USIEU> MF)3\#-$7E5,K MR\9BV&"C\-7('(7NE%\E=-DOM4][:;I/>I^N?+9G50-@U^$2[8^VCK#?BA%( MSF/GA%)Y$'9^*UE-R"$_]O0 1@J@,+[;OZF#I B2/'G+^<17CJ5:K1%(E92Q M+G2:UGAUI$Y M4C!@$.6_IFL^:N3M(E37!D,/5S<:(%^D[V1R:ZF$4-/9Z3BH@H+9:&T$ MASRQGE"SOTZ\SK@9R$+R/9+3%@5ZSIN,+:U,@V97?I+LK1N">01W2.<[L93 (E9%ZG9/ MCAZ=(NKC52#IG,?LYP2!5S:J=%^RP2_]$\3[3>R+"WI8XU!.I;)QV2*5KM(7 MHW9R@FZE+Y$IAXC4NDMY38+EBVQ%^G/HO8G>*K/'5QYXPS##YPG) MY";AVU2"OLYU*9G)4/$(#MW+;'6MQ M;JH6HXA-E<*D"N5F,-)!L%!W>V_5Y3+YED>[#';[DU+3;+X-&V($DJTQ*N$. MJ(BV8H0+1,3#6X=4E(NJ:S^A*W3^ 83O=)J$JLF.; M2K=#J>"S5$![7T@B:!U9/@DC,P8L,6$*'^GD%_RPE?N'TH*7\\^[Z$)E#ED/ MDE=E,$NM4^W1^"ZUB6/K3JU1*;>"-#YV5- E*;H@8^3[8GH642%9AK3+9"2!PI6+$^FZIO\B2NN>N MTI.M2C:>:JC.SNI7T6[@D.G)Z)VJ)XU&@Z#UH!IUI8KHL7XR= >V[?K[4IDD MHORCCS_3Y?)399PY-RQ,,:1'- E;>[6&;S,4?JOM7[?:&F5,^5C4M.8 M281^@,$&SEC3G I0XKW-@G\S1]CJX='Z]T-=$ 71X:GUQ>!A.1F.PO7-.4O!M MV1/>E?3NV^$T'$]-X'UR$D[AC,PS*%WJWQN[.S,^"4?6K4 K0'\TGGX%A'I[ M/'--C\+)J3L7?#T^= ]GU[_]CX+V(-MP<#AL?3P^?7P0^]CW6O&.#!Y@ M:Z,"VNQ5L:WYKMJ[5?>-!(VB1,I%55G#RG9L>W"W\)):URD!(W9DZ<=<*VYJ M#/%N";\NI1!0?31I27+<5\TM= 7Y(UXM+7$812H:DM+"R1?I MBC"_#4NO(%9N"1 K5'A!+GA'Y1ZWXHG[[:2LVEIU&&=]*F<;>B4).^2JD4KDE9=I3F50E,2&YA35A2? M=34M5>:24DM,5 [= =$Z33(9J4X)\6@-=J&I3MFLV8;3];5+#9B$O4)50]?F34LWSK^TO>)Y%V:O3\;M+SNTG/[R8]OYOT_&[2 M\[M)S^\F_9]Y-ZFK&W2?47KL]^=GEIZ?67I^9LGUZS_V -)3VS\_F/3\8-+S M@TG/#R8]/YCT_\X-)__P'DYQ7%'<*T_]+WE[\%0I( ZV1!'-'E?]NQO[>]S?=+_#^N3=I'/KA[9B^84V=^PTJ.;_Z/1^/]$A,W M46'C\8S87<3T+LEW.ZGLSXE^SXE^K>F?$_W4U\^)?L^)?L^)?O_(1+]?E%_V M%@O"9-5^< (_DJNI#O#-9:1EO?(:8BK2%7&O]:QYZ][+=R"X 7B^ ?>]$W=VG*N4U)]#O:HG(LL$>V ,AH.AD-'GQJ-?=_>RK?% M$9&MB?Z.%ZOY:6>W4K!GF+%WRIONV];J&>=>U^0-O^3<_;WSJC(F/]XM>U]5 M_BO?Y/L?US1A*ZK1EW\_R@2P]Q]_>VP]@I9TBB4;]1\"0G\)/7H48+@YLLDN%//6CP MU_=XR9!T)H?/;O,5.I2VU37H2/]>+Z!_J[9X[QQ H(F#,+U>9%=VDOE=C (DDXXE,G"\?^&LR'W:PN-D[GD_Q"0[HA79?I^$ MRS?L>ESQ!]@?1*_ MI_TK>*8UEC0XU#S;^*5J8R,=6-&N8>)53H^\)L615[\:3[S?'GJ_'?F^-?MV MWORKVL*H(K2Z1!..=W5R>/S(PB[M6?=.=-\FJZ,4),8X>QI>U#EIEQ%"4 MF$))_HU6[A,J!,PENK?Z\28J:UEC-51%>7R_A\&UKL5Z*7V7W0FQ;IV+KEA8S_V6/8KD1+S5M<:N M914P1RIWJX-Y5!8\HUN^SD7Q*X2X7\YS$[L%1;ZD>YO"8)0:?CUG!U,?KE"M M+ <:Z22WH4+_@[KF]E%5>L-"5-[&?2X)3_6R;A.L[N=NMR^^]\MIL)V2)&C0\T!T);+?L>5N6CL^O;-_4FZ M8^T)E#B2^-@G-7KC51Y2..!HZR\;P@IW]6*C'5)BK&R=F*^O>^/>1N0^I^'9 MNNQG_-TA']&^?HE?<\O4E,=N?G]55?5W_PM02P,$% @ $).>4.=FFL@[ M @ UPD T !X;"]S='EL97,N>&UL[599:]PP$/XK0BDE@1(?:;:DL0UM M(%!H0R#[T+>@M<>V0(=X5Z0X6KS$P<^3GH;?YC6Q&?7YKU%_AWE&O+#$0;\Y65)*L;]'%C"5"0>T M)BS%5X31E:(VJR2G4PN=Y%TVS[U#>W$0+6KH6NJWG5F-<+Z].7"K MH*0;YV_*L;YA)TW#MF\8K00'OY8?%HP.+)@E9*B#:JGH@^&S-R4W "B,UJ T MS7>1SXHT2]CHX39MRD,UQ_\UXPH$*,)V19NK_V2*SUX]7K+[B\X%/T[C[[Z] M?WA7;8?Z&[Z?T#DXHE%!OT'?:=K[/6,$46KCC)-12^WID4!7H]MVBF^ ML:\%MO?IGEJ'H==D95Y9>_PFMX"2=$S?VB6Z8(HG^[T5'BW&6')@D MUH*=VB;I]M=W#,VM47.C>W'S1##&?(SQ? /Y<%3Z::W4$_M65]*,HIVU^]O! MP!0[J+EYH_8@\YV&<<.!UCQ]2@:1HPW5MV)RH+.N(5/6C5[(;>C*([8 M1FACATM7S]R9!U%-T,<\"",6(M*V.=1U/ZN(,*[&'BWT<;AM.V">*O_3QC59B,* MR%31U"!M%T<-E;NZ-#NQ-Q&3O(91=.K"N"S95%JD83/9#85]W;W@I6=E=U\6 M(_8"R_2MP -Z5L8./!SD9#'/%P^S;+R:9NRO\<-X/IFR_'XZ7>4>8$( )A<# M9*^6W(-,">I#7!.3UQ2#S MU6+B0=X0D#<7A/PG\2#?$I!O+S?=X_S>@WQ'0+X+"[G4L.>Z;6=J@^D1W2%J M=B3)O4_\9V;?U$/J0R^3 LYK@H5",M M D(!XL#QZBWEN*K4D?=\0PHGL'%F\H =T/9@?"1*,7%@QV"IL\>)?.Y,_;41 M>W?"GTQ";W(IP<2!#9/!NL=">20.+))'P!ELP,>AC!$'5L:*?_,?^?%6 [A3 M?#Y*%G%@6[@'RC[[-)05XM!:4'4MK.O4Y3!,;A:+=,!TVU^0E!7BP%J8RZF/2:DD":X2HB[NKV5*)DE@F= IIQ=-RBQ)8+/T4DX& MEHNJ]T2FE%W2X'8A MRT:4>-+ XOFE"#^/2$DG;:4S./T+4,)&2"CG.+S!]H)7Q5(SM^D^3EQ=N[>. M35-5$VQ;R ?%V^_V;HS3'R(??P!02P,$% @ $).>4*VBQXV8 0 MQ< M !H !X;"]?$W JHTM$DN8)G%1OA/NQL%;A_'38P$.RG01V/+LC7S5H^L7;_;*@O'MO'E ML?.3.=GM-XG;[2F9?&:NL&&3F'-EOEMW\J6UP9OA1B_]@OZ32V?_L[X]'(ZY M?6OSK]HVX4;%WX+$W [B>!##@R0>)/"@:3QH"@^:Q8-F\*!Y/&@.#UK$@Q;P MH&4\: D/6L6#5O @2A494WR2AC5>:U*X)KS7I(!->+%)(9OP9I."-N'5)H5M MPKM-"MR$EYL4N@EO-REX$UYO5O1FO-ZLZ,U/^-?6?K;Q>K.B-^/U9D5OQNO- MBMZ,UYL5O1FO-RMZ,UYO5O1FO-ZLZ,UXO4716_!ZBZ*WX/4616]YPEF)=EB" MUUL4O06OMRAZ"UYO4?06O-ZBZ"UXO4716_!ZRTAO7V;.[C^".S:%?W3)U?"[ M1Y,CN'VX5/;Q&$V#U-_(\S5.?WV!U!+ P04 " 0 MDYY0R5/E^*(! <& $P %M#;VYT96YT7U1Y<&5S72YX;6S-F=]NPB 4 MAU_%]':Q"&SN3]2;;;>;R?8"K#VUQ+800*=O/UIUR98N<5&3WTTI'#CG@Y+O MII/WK24_V-15XZ=)&8)]8,QG)=7*I\92$R.%<;4*L>L6S*ILJ1;$Q&@T9IEI M C5A&-HX3IHZJ;HXOM?57 M<4(R>-[$+#Z.39,8]0D[HL+OA6T_KGM=DW,ZIW^AF:+0&>4F6]5Q2>JM(Y7[ MDBC45>I+Y2A_"TXWBSWO7+GPHNJ8F&TJ]F-">CF.L*VH'Z"+G+-RB->"^DIU M@=V3GU3PI9._&<6Z3VZN24'U4\IK[4!\CSP/ $P( L M ( ! %]R96QS+RYR96QS4$L! A0#% @ $).>4"?HAPZ" L0 M ! ( !Z0 &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4 M" 0DYY0CV0#NN\ K @ $0 @ &9 0 9&]C4')O<',O M8V]R92YX;6Q02P$"% ,4 " 0DYY0F5R<(Q & "<)P $P M @ &W @ >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0 ( !"3GE!Z M!1QI10, .&PO=V]R:W-H965T&UL4$L! A0#% @ M$).>4*>^BY.> @ L0H !@ ( !3!$ 'AL+W=O&PO=V]R M:W-H965T&UL4$L! A0#% @ $).>4&G"ME/A! "A@ M !@ ( !XQH 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ $).>4!J.3-JT 0 T@, !@ ( ! MDB8 'AL+W=O&UL4$L! A0#% @ $).>4,W W'NT 0 T@, !D M ( !:"H 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ $).>4/F=\9"R 0 T0, !D ( !*# 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ $).> M4$NEC:BS 0 T0, !D ( !XS4 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ $).>4";;ZP^S 0 T@, M !D ( !H3L 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ $).>4':1&TBW 0 T0, !D M ( !D$$ 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ $).>4.)%&TNW 0 T@, !D ( !6$< 'AL+W=O M M!0 &0 @ %&20 >&PO=V]R:W-H965T&UL4$L! A0#% @ $).>4'XI MAM]6 @ 00< !D ( !PDX 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ $).>4/<43HZ< @ "@L !D M ( !ZE8 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ $).>4#M\.Y01 @ UP4 !D ( ! M?%X 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ $).>4.7 )2D7 @ @8 !D ( !8V< 'AL+W=O&PO7W)E;',O=V]R:V)O;VLN>&UL M+G)E;'-02P$"% ,4 " 0DYY0R5/E^*(! <& $P M@ $FH0 6T-O;G1E;G1?5'EP97-=+GAM;%!+!08 +P O +L, #YH@ " ! end XML 32 R9.htm IDEA: XBRL DOCUMENT v3.20.1
    Preparation of Interim Financial Statements and Other Items
    3 Months Ended
    Mar. 31, 2020
    Accounting Policies [Abstract]  
    Preparation of Interim Financial Statements and Other Items

    1.   Preparation of Interim Financial Statements and Other Items

    Basis of Presentation

    The financial statements presented in this report represent the consolidation of Cactus Inc. (“Cactus Inc.”) and its subsidiaries (“the Company”), including Cactus Wellhead, LLC (“Cactus LLC”). Cactus Inc. is a holding company whose only material asset is an equity interest consisting of units representing limited liability company interests in Cactus LLC (“CW Units”). Cactus Inc. is the sole managing member of Cactus LLC and operates and controls all of the business and affairs of Cactus LLC and conducts its business through Cactus LLC and its subsidiaries. As a result, Cactus Inc. consolidates the financial results of Cactus LLC and its subsidiaries and reports a non-controlling interest related to the portion of CW Units not owned by Cactus Inc., which reduces net income attributable to holders of Cactus Inc.’s Class A common stock, par value $0.01 per share (“Class A common stock”). Except as otherwise indicated or required by the context, all references to “Cactus,” “we,” “us” and “our” refer to Cactus Inc. and its consolidated subsidiaries.

    The unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America (“GAAP”) for interim financial information. Accordingly, these consolidated financial statements do not include all information or notes required by generally accepted accounting principles for annual financial statements and should be read together with our Annual Report on Form 10-K for the year ended December 31, 2019.

    The consolidated financial statements include all adjustments, which are of a normal recurring nature, unless otherwise disclosed, necessary for a fair statement of the consolidated financial statements for the interim periods. The results of operations for any interim period are not necessarily indicative of the results to be expected for the full year.

    Use of Estimates

    In preparing our consolidated financial statements in conformity with GAAP, we make numerous estimates and assumptions that affect the accounting for and recognition and disclosure of assets, liabilities, equity, revenues and expenses. We must make these estimates and assumptions because certain information that we use is dependent on future events, cannot be calculated with a high degree of precision from available data or is not otherwise capable of being readily calculated based on accepted methodologies. In some cases, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ materially from the estimates and assumptions that we use in the preparation of our consolidated financial statements.

    Reclassifications

    Certain prior period amounts have been reclassified to conform to the current period presentation.

    Recent Accounting Pronouncements

    Standards Adopted

    Effective January 1, 2020, we adopted Financial Accounting Standards Board (“FASB”) Accounting Standards Update (“ASU”) 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance changed the measurement of credit losses on financial assets measured at amortized cost, including but not limited to trade receivables. The new guidance replaced the prior methodology for recognizing credit losses when it is probable that a loss has been incurred with an expected loss model that requires consideration of a broader range of information to estimate expected credit losses over the lifetime of an asset. The allowance for credit losses under the new guidance represents the portion of the asset’s amortized cost basis that we do not expect to collect over the asset’s contractual life, considering past events, current conditions and reasonable and

    supportable forecasts of future economic conditions. Adoption of the standard did not impact our consolidated financial statements other than certain expanded disclosures. See further discussion and expanded disclosures at Note 3.

    We also adopted FASB ASU 2017-04, Intangibles – Goodwill and Other (Topic 350) effective January 1, 2020. The new standard simplified the accounting for goodwill impairment by eliminating Step 2 of the current goodwill impairment test. Under the new standard, an entity performs its goodwill impairment test by comparing the fair value of a reporting unit with its carrying amount and recognizes an impairment charge for the amount by which the carrying amount exceeds the reporting unit’s fair value. The loss recognized should not exceed the total amount of goodwill allocated to that reporting unit. Adoption of this standard did not impact our consolidated financial statements.

    XML 33 R12.htm IDEA: XBRL DOCUMENT v3.20.1
    Inventories
    3 Months Ended
    Mar. 31, 2020
    Inventories  
    Inventories

    4.   Inventories

    Inventories are stated at the lower of cost or net realizable value. Cost is determined using standard cost (which approximates average cost) and weighted average methods. Costs include an application of related direct labor and overhead cost. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal and transportation. Reserves are made for excess and obsolete items based on a range of factors, including age, usage and technological or market changes that may impact demand for those products. Inventories consist of the following:

    March 31, 

    December 31, 

        

    2020

        

    2019

    Raw materials

    $

    1,702

    $

    1,538

    Work-in-progress

     

    3,857

     

    4,619

    Finished goods

     

    94,742

     

    107,214

    $

    100,301

    $

    113,371

    XML 34 R16.htm IDEA: XBRL DOCUMENT v3.20.1
    Tax Receivable Agreement
    3 Months Ended
    Mar. 31, 2020
    Tax Receivable Agreement  
    Tax Receivable Agreement

    8. Tax Receivable Agreement (TRA)

    In connection with our initial public offering (“IPO”) in February 2018, we entered into the TRA with certain direct and indirect owners of Cactus LLC (the “TRA Holders”). The TRA generally provides for payment by Cactus Inc. to the TRA Holders of 85% of the net cash savings, if any, in U.S. federal, state and local income tax or franchise tax that Cactus Inc. actually realizes or is deemed to realize in certain circumstances. Cactus Inc. will retain the benefit of the remaining 15% of these net cash savings.

    The TRA liability is calculated by determining the tax basis subject to TRA (“tax basis”) and applying a blended tax rate to the basis differences and calculating the iterative impact. The blended tax rate consists of the U.S. federal income tax rate and an assumed combined state and local income tax rate driven by the apportionment factors applicable to each state. Subsequent changes to the measurement of the TRA liability are recognized in the statements of income as a component of other income (expense), net. As of March 31, 2020, the total liability from the TRA was $216.5 million with $14.6 million reflected in current liabilities based on the expected timing of our next payment. The payments under the TRA will not be conditional on a holder of rights under the TRA having a continued ownership interest in either Cactus LLC or Cactus Inc.

    The term of the TRA commenced upon completion of our IPO and will continue until all tax benefits that are subject to the TRA have been utilized or expired, unless we exercise our right to terminate the TRA. If we elect to terminate the TRA early (or it is terminated early due to certain mergers, asset sales, other forms of business combinations or other changes of control), our obligations under the TRA would accelerate and we would be required to make an immediate payment equal to the present value of the anticipated future payments to be made by us under the TRA and such payment is expected to be substantial. The calculation of anticipated future payments will be based upon certain assumptions and deemed events set forth in the TRA, including the assumptions that (i) we have sufficient taxable income to fully utilize the tax benefits covered by the TRA and (ii) any CW Units (other than those held by Cactus Inc.) outstanding on the termination date are deemed to be redeemed on the termination date. Any early termination payment may be made significantly in advance of the actual realization, if any, of the future tax benefits to which the termination payment relates.

    We may elect to defer payments due under the TRA if we do not have available cash to satisfy our payment obligations under the TRA. Any such deferred payments under the TRA generally will accrue interest from the due date for such payment until the payment date.

    XML 35 R35.htm IDEA: XBRL DOCUMENT v3.20.1
    Tax Receivable Agreement (Details) - USD ($)
    $ in Thousands
    1 Months Ended
    Feb. 28, 2018
    Mar. 31, 2020
    Dec. 31, 2019
    Tax Receivable Agreement      
    Tax savings payable to TRA Holders (as a percent) 85.00%    
    Tax savings benefit recorded as APIC (as a percent) 15.00%    
    Total TRA liability   $ 216,500  
    Tax Receivable Agreement Liability Current   $ 14,630 $ 14,630
    XML 36 R31.htm IDEA: XBRL DOCUMENT v3.20.1
    Property and Equipment, net (Details) - USD ($)
    $ in Thousands
    Mar. 31, 2020
    Dec. 31, 2019
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment $ 280,321 $ 270,784
    Less: Accumulated depreciation (130,853) (123,397)
    Net property and equipment 149,468 147,387
    Total property and equipment, net 162,871 161,748
    Land    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 3,203 3,203
    Buildings and improvements    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 21,812 21,655
    Machinery and equipment    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 55,826 55,494
    Finance lease right-of-use asset    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 24,936 24,275
    Rental equipment    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 169,307 161,156
    Furniture and fixtures    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 1,762 1,684
    Computers and software    
    Property, Plant and Equipment [Line Items]    
    Gross property and equipment 3,475 3,317
    Construction in progress    
    Property, Plant and Equipment [Line Items]    
    Total property and equipment, net $ 13,403 $ 14,361
    XML 37 R22.htm IDEA: XBRL DOCUMENT v3.20.1
    Accounts Receivable and Allowance for Credit Losses (Tables)
    3 Months Ended
    Mar. 31, 2020
    Accounts Receivable and Allowance for Credit Losses  
    Schedule of rollforward of allowance for credit losses

    Balance at 

    Balance at 

    Beginning of

    Expense

    End of

        

     Period

        

     (recovery)

        

    Write off

        

    Other

        

    Period

    Three Months Ended March 31, 2020

    $

    837

    $

    625

    $

    (32)

    $

    $

    1,430

    Three Months Ended March 31, 2019

     

    576

     

     

     

    2

     

    578

    XML 38 R26.htm IDEA: XBRL DOCUMENT v3.20.1
    Earnings Per Share (Tables)
    3 Months Ended
    Mar. 31, 2020
    Earnings Per Share  
    Summary of basic and diluted earnings per share

    The following table summarizes the basic and diluted earnings per share calculations:

    Three Months Ended
    March 31, 

        

    2020

        

    2019

    Numerator:

     

      

     

      

    Net income attributable to Cactus Inc.—basic

    $

    18,983

    $

    26,807

    Net income attributable to non-controlling interest (1)

    11,166

    17,505

    Net income attributable to Cactus Inc.—diluted (1)

    $

    30,149

    $

    44,312

    Denominator:

     

      

     

      

    Weighted average Class A shares outstanding—basic

     

    47,270

     

    38,719

    Effect of dilutive shares (2)

    28,125

    36,527

    Weighted average Class A shares outstanding—diluted (2)

    75,395

    75,246

    Earnings per Class A share—basic

    $

    0.40

    $

    0.69

    Earnings per Class A share—diluted (1) (2)

    $

    0.40

    $

    0.59

    (1)Under the if-converted method for the three months ended March 31, 2020 and 2019, the numerator is adjusted in the calculation of diluted earnings per share to include $11.2 million and $17.5 million, respectively, attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 26% and 24%, respectively.
    (2)Diluted earnings per share for the three months ended March 31, 2020 and 2019 includes 28.0 million and 36.3 million, respectively, weighted average shares of Class B common stock assuming conversion, plus the dilutive effect of restricted stock unit awards.
    XML 39 R7.htm IDEA: XBRL DOCUMENT v3.20.1
    CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)
    3 Months Ended
    Mar. 31, 2020
    $ / shares
    CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY  
    Cash dividend declared $ 0.09
    XML 40 R3.htm IDEA: XBRL DOCUMENT v3.20.1
    CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)
    shares in Thousands, $ in Thousands
    Mar. 31, 2020
    Dec. 31, 2019
    Allowance for doubtful accounts receivable $ 1,430 $ 837
    Preferred stock, par value $ 0.01 $ 0.01
    Preferred stock, shares authorized 10,000 10,000
    Preferred stock, shares issued 0 0
    Preferred stock, shares outstanding 0 0
    Class A Common Stock    
    Common stock, par value $ 0.01 $ 0.01
    Common stock, shares authorized 300,000 300,000
    Common stock, shares issued 47,398 47,159
    Common stock, shares outstanding 47,398 47,159
    Class B Common Stock    
    Common stock, par value $ 0.01 $ 0.01
    Common stock, shares authorized 215,000 215,000
    Common stock, shares issued 27,958 27,958
    Common stock, shares outstanding 27,958 27,958
    ZIP 41 0001558370-20-004848-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-20-004848-xbrl.zip M4$L#!!0 ( !"3GE#5V/Y$/ @ * F 7 =VAD+3(P,C P,S,Q>&5X M,S%D,2YH=&WM6F]OVS83?]T!^PZRT.BUR%'8Z8;='+CZXCIF9"OA]-L@83?#@V[FFLG@R;(>DB!5O5B4UC8*@S!3[M3F+YAMZ;. M\P3,'7:/JPM4\.L\M'+[@N>LGC$W1ZOUHI_*W-13.N5B$4[XE&ERQN;D4DYI M'MCS0#/%4]=/\_^QD+1A/J_.LP%>KU1*N"X$780\QVG6AO@1W@^DVVZT!TUL M=FMJ%E^YMA@N,O5]%S<<74[&[\;#T\GX_(R236%F>J_$9F2(8U- MJ0,RSN,&.3 9(S\_O^VTVL.^8M=<&T5SXZZ\[1_V?\XC7?3O9ZR=4?1=C=5I MD#=46W8GTP6YR>5<,$@$@;.9MU0B08E<0@:!\93GA.8+4N9&E0PF@NQ@TPN8 MD)(IG"E.!4G!FD0J(J? -T:Z?EL=%: LK E (- MA'-@AY@KR&G0+8?AH F@F,PS'F=$E_BU&C]GBGDAN( IUP+2#<^O71943!WYD: )9P%!Q@ MCU) !W"Y!+_8Z;35)Z8Z(ZF0.I57WOG>89'W,LTY7!ZH ^MD<:$*F;= >;ED6!H-L( Y'@.L,1V&T* M88^AC^>@32RD+F$<$H*2POFE4#)F"5S6Y #[2^OMW@%S6K1[B3MSIQRKB=SA >43#,@UF#BWH2Y[3Y1N3)3"1+C.N^"! M'I@ZPB]A=_MUU#AZ=.@XH(=^/0G34*V!J2Q-_K4? V3PF)9Z_R%(I1%;S>3( M698*!$ =["1 T> +EH*GMB- MBBXCS1-.%<<%<)=#+-OE**G4R.LV++1- I8+I&:@$.Q*[* "2@4>EX(BA<&R MK!*K_ C7+993Y)P%#'L""P#XUGR9. 3'=X!SM[AN86?_0-[;Q@!]&8\0710 M+7.*#$8U( MK X0,54GE/@ 4IQ$7W"PP<^R:%L%L/6V=Z'"XT76MMK!$>>L7 M5)2J !!IF^GB6*K$*F"KC&N60P(3@"5H806"%+M !>7P F#F!7!5_XD )J[X MALVH*&U0HDU9FD+*YS.PAMZ1NE[T[F%"0P$AM"N:(AD:3ZMPCX\ M2)>]&59$Z5^7BR2J:BV+?&\*T*>/PI^(IQ/O:??M#;GM$-PO^,1L6W:[_1[D M@#E#QG&IT.YK!+U+[%1J PUXBP*$Z1@D^;V@V^7M&I,"A"!P[W3WND/]R>QN M!S=">;G4[-#IE5&]S&<8\A9R++%<:$WB>6H!>YH;)OS6YT[_X.NM9''VA87, M(\-9[VOJ6WLO8 G-8!672!/KX%B%*'KW'DENJSY9J4>A2#%2Z65BL1= YA3V MQ8:QS]%@)"%W88>$@X96R@%@"%A'(ZO!+]9*%?39GR6'!5B4EWELMTN'3[20 M==^XH<3R@(/#L7K'?4#,&;C')XAE53EG] 89WZ5GR_FVL+ W**K-Y;V<[@M MMW?:$= T@8&:+>/YTP#Q]0B, 2=#V1"XO*,AZ>AR"KX! ]C5>"[=N0__FEA_ MI+Z.-GT-&215$#P!6)[9F ??V5LZWLF!8U^>SZ28,:3@G%[[.U/*TP2;%D(N M&+3.,^F(@6Y "%S^,"FJ\1EGK#V0F//$9,ZXM9.!L=5KS(0H:()5Z^M:JV;/ M=4'CZMP/C0 K3-5C*00M- NK@[Z3"99O-5#NEA?]8XY(&B.GX;I_C'('<)20 MF;VS_[IF9%';5/>XUSA^^:+O%8#VL THRF7.R/.WK_"?5(WN2H]/[!BQ^7R)_"_P^%L>F=[7/4W=W'@:^&_H/)[0^3:I8S?<'YO]'V6P; 1*I$XJU^PO(Z+Q MS;6299Y@Y295N(#J3L[MVRI[RL*FD!LP3+RMX86"C0V6\ $99IRE9'3+XA+O M>)%SMS&V>PE4_JW?5>+QP86["0DE[-: PWTH 0ZP>/7OW'QVSX&?;N?H;W'P MEX=;5;%_HY>(*C_#]*]K[=H)63/R T]9P#:H'L$N]:9.4S!R2&>2)XBXM1FV M<.GYH1\+1E4(\9_UO5\P-%W8ART_=]A=.M8?K%Z_J@ Q:-KWNW[\8="T+XO] M'U!+ P04 " 0DYY014#,Q9#(N:'1M[5IM3QPY$OZ.Q>VSW#[*^_*MOS C.$84,4$A$4<+?M\VS*T;(07V_WJRW6ONUVN&OO_1 MQE&8I61,=AN=9J/=;#?);MQNQYU]WA86-TM+\'^K7=JN93>V MQF4&Y@;KS&Y0P:]D[.1V!9>L5C"_1K/Y6S=7TM9R.N)B&@_YB!ERRB;D0HVH MC-QU9)CFN1]G^-\L)BU8+ZCSJH?W9RIEW)2"3F,N<9FE*6%&\ /IM.KM7@.[ M_9X:Y5?N+86;3'_?S1T=7PP')X.C_G!P=DK.3LCYQ>#T:'#>_T1.!J=]:$+K M[ 1&'%^07J(/S_^XN/RC?SHDPS-R>7SDIG6:;9PZ_'A,+OL7[_NGQY>UL_]^ M.OX?Z1\-L:?=;#[.=,UUIONNAAI$Y-*RLF"2#&DF5'H=D91IR_,IL06U,?G! M-]BJDP$IZ)@1S<:<38"];,$-^:NB&F JIG"_5-H"IY$3I4>P4NW?1.7DB*:V M,A$9R+1.MFW!R.^O;]K-UE%7LRMNK*;2^CL?NCO=WV5BRNZ/;JQVG;RGQA$\ M&4W)M503P2 61-YFP5*9 B6D@B "\RF7A,HIJ:35%8.%($"X" ,FI&0$5YI3 M07*P)E&:J!%0CE5^W,H R5)F#-53'#*BUXR@W>!@ZGP! M3(SD7(*[T/,+]T2 )!@.W7JIG\LY! \B M^!"4D,G,T14<:^XL#0#.. J.<$0E8 ! 2H'?W7+&Z9-24Y!?:@:P(X0H3"_W4JN497#; MD&UP<\8 -]Z7QS=I026DR'W@BHM*P(A6A]9:>]O,:]':R_R5O^28$$F/-Y1/ MD%"68.AA@;ILO%!^:Z$<%L)]W@4GC,#0%__#Z$1:N_7=9X>.;;KC]^-_9\Q MU@GV)(S,5_(11E4:!,!A'W/C* 1&,>GD8.:T()]E M M-,4.?I$&(6WHH"N6$G!R("78P2/',%EZD2PS-.-<<-5H(B3\*VG!*+( 888H49)BF1&#> +TQP$#M79S(D M*TX3+KB=8I!:MRQ"VOG;N=*C\=;0I33)<>9-V%!9Z1*@9%Q035.E,Z> 2YBN MF(18*0!1T,-*A"H.@630HP8@S4N@K4='I&<*F#10#V%C*BIW--&F+,\AN^!C ML(99DR4LPM<&7.,OUV<.#B8P$7C"^/PD496]7X5-V)#.1S-,OO*',U^2S-(Z MA_Q@"M"GB\)_$D]G,T\'&Z[Z JN>$)Y=SWJ//X(7,&BH-*TTFGR)H=>)'2EC MH0.?M8 PDX*D4-'Z6G7=G!S0 V?VSO"@.V2YS-5L6,[):J[9CM>KH&8>T/"T M.[2QS-&@,TF@J"E49M=,A +NSOCHZZWD(/9S%-M[7Y/ENB<:UIQEFL%$P^9'^7YLA"P$YH!_ M(5F(?+0Q$&I,-0*WP-[=;@*-KBWTO^:8/U,W)W,W0]S(-1R9"(S.W$D'M[G' M4<&_D>=<+L<*:GXD7DFOPE,U'\_32!J?X%/RR] M3YGPS!;>KEN'/>O2U90)4=(,T]1W6\TM=VU*FLZNP]0$8,)T+55"T-*P>-;H M>IE@]&8=Y:XX,+RE292U:A0ON\9JWX!61L;NQ<2[+:O*K=OJOFG6VR G* #] M<0L ))5DY/6' _PALT[_HNB^WJ#"O?WA1=)*=[". _!^?:^T80/K,?XT$%Z8 M:7,0KSY_!&7C?=OZ-;[P*Z86U D7=W9?WC*R+F&>A$KHX@<%9SEY&2>]Y_Y1PVN M1!MB+5AIIG^B_6^?^Z?2L-653>]L0GO0P.(F?%)V7SGZ-#MO;U9MWO/>]QM] M]#9[<0TJOMMJ;1V2):L]\9(EU+VU!%!X7:,YX"FF8\4S+#"75DAH>GVE524S M+"&5C@/'=5/!J(Z!PXIN< 3:TU-7W QKQYW9PX-98_&YX,S#O8;['O'77WH- M]W'C_P%02P,$% @ $).>4&&UH>*!!0 JAP !< !W:&0M,C R,# S M,S%X97@S,F0Q+FAT;>U9VV[;.!!]3H'^PZR+%@E@R9*^N$96FPE;M7)%:R3"Z7$K9#>0J2FG1Y4QD=\QMMF(97L.EXGKARW:JCK(14:U]-E97XC5>#DGZ:B=\HBG%TGOM'2 MY"RA5DQSC8[SMAF)1%D1&3,^]8=L3#,XI[=P*<8DJ9K[:D8EB_)Y&?N;^N!J MS;GQK98>+QT(699R,O59HLTL+"E6%*A#W;/=5DV+\PAJZ;TB";!VJ'SZ4&YS M6R/!P]78.MW+8>^TUVD/>_USZ)]"YT.O>PK=S]W.U;#W>Q>'4-J]A$T"_Q$" MOKBZ'%RUSX]4I46!(B(GY]/WWF MS3N,608!E8I%+""*B01P()7BAH7(QNE$9A."ZI2 =V_NV@=- XN(0,44!D2. M2$(SJW_'Z13:@=(2#4MUH7B*=7GMD"0$$@1BC%V!861:S:<)D5@=? J7-!42 ME21P*N08H[(^022DF95BS"($FFB_SH@,8GB7C+*T67>K8)H%VNZ00$VR*O22 MP(9MO0RM>X[;:7:,R6E^>]+< 9)!Q'C9ITPX-)A(IK1;VLWN71"3!+L5+AVS M+-/8X)^>&6*K@IA*BB:7K.0!S(S8]ZZ.9RV&7A4&@5 *WFN4914N),V8KM1J M@74G9C1"9! IQ6XH]",L&RH-7B=,TD!AMHKJ*!"O%N4UQ4&B_'6(++3.6Q:J MV$2.C561$:>KDF8%57*>DC!DR?51Q:W8:R=,WP'(L< M"NT;/CZ$1LN-(;&CBA)I!8IKW=PKRXJPYFUG$?N9H0?+ZIH66AA;SO0CE9;Q M 2W"MKNSD,AY)DO$EG!QUL*N1^=7W\5_"?+%9#P#SO=D5UIR6C3A2'":^+@F MF!GI2/K7!#>.?G+.],[)< ]IIG'KVV0'<#>Y>]OASHQQYQ0UHZ>"=MU&?;=I M-F*1F3F$-;T;:F8W%4^K/UJ;VO9V0(/)$FP'X[Q/!3B)X.P01PTX)=*$Z5Z2 M(G=I4*M:3/#L@L0'!.THSZY46S)$S'L;7>%1"* M,]((FY$8^XOA82D7?/A?*(7Y0>U; MTL*);\J+@]R*N(PG[PD%6CH6V+?W4E7R]OIGY_]<%LM6Q0V5$1>W?LQ"K+D5 MFBUJX.LK^H7 M ?G+VQ/?W0\O.@@M\IE"1X(U+S#GKRPV>5GQ$T6^?2$9'F12/,FLQ+RS">-M M<$1TY@=B,+SW,E[S;G:F>0HJ_/^N/M+72<>%9VC^J.)6CI??$CRHR91<4VLD M*?G3(A'6@T]N! OUX7'!PH@$?UY+,4E"?3P4TB]HNQEP2J2/M!R7#\S>C.E] MIWPS4Y]5X?S]3!%&6;VMFOFF[_6K5LU\;?@/4$L#!!0 ( !"3GE#3&/ Q M= 4 .$; 7 =VAD+3(P,C P,S,Q>&5X,S)D,BYH=&WM66U/VT@0_DRE M_H>Y5*U BAW;(4"<@)2&H$8JA)+T=/>IVGC7\:H;K[O> +E??[-^"4D#U]"# M0GL'1-@[N_/RS.PSWKC]FV6]&YV^!RJ#V93%&@+%B&84KKB.8"23A,1PRI3B M0L!;Q>F$ 33M/=NQ77?/LHY>OFBCCFZQ2L8^[-;J3LUS/ =V?<_SZ_MP?II/ MC/14X/^M=L0(-1=;; $NN_Z MO1,XZ9]USKK]SGL<0FGO C8)_&<(^/SCQ?!CYVP$HP&X!_#1'MI=&X:];@: M6V\XU5\FULX0.L>#\U'O&);#+H-M.GLFXZ-W/1AV+MYVSGI#:_#'^]Z?T.F. MC,1S'&\C,,J*=[T2%1Y31,2O[R5/O'E'$4\A8$KSD =$//JNK/?RF"1(>B(P9"H,8E9:@VN!9M#)]!&8F"I+A5/L2ZO'1)3 M($$@I]@5.$9FU'R8$875(>9PP1*I4$D,)U)-,2KK X129;,2C%E28+'QZY2H M('H3C].D57>KD/4*--TE@9ZE5>C'@0W;9A4:]QRWV^IF%N?Y[7%K!T@*(1=E MF\JB8<%,<6V\,E[VKH.(Q-BL<.F4IZF!!O_,3(J="B*F&)IA&G(5PPF,2!YP(&(18-TQE MB(VPA:3PYK#CY?9J0H+C'I0H_='5MMM]0EMPR? -'CH;Q#1\@:*;E,J.QPXJ6206* M:]/>*ZN*L.IM9QG^A:$'2^PM3;0PMIKL1ZJNS >T"-ONSE(B;S)9(K:"BW,K M[&;TYNH?\5^!?#D93X#S/?F5E:P6S@12G*$^83AFP3N*?9EQQ\-2"X8JB-=MUG=;V4XL,G,#8J0*<1' VQ=$,G!)IPDTW29"V#*A5(R9X^L!EZ ^R%@H2 M1!DE9E6X8#-42'FFVJ"(LV8BSXG$[I/93+_BMOM3_/."->^A&U-R:\')W^#? MO3S']V?Y1/L-"PO<8SV"Z/U41NK^ZG)J?GMS>^M2^>=1Q&Y'.-C@3K MD7W7UQ6_4/S;YXICI F&NA;TSB;\M\$A\3$:[K\_LSS26YBCPC,T?UAQ*T>K M1^L'-9F0";/&6)2?+1)B>?GD4G)J3EQ+%L8D^#Q1@B!]I_PZHUYV@O+BYOU5F?!V+7M!]O)%NY:];?L;4$L#!!0 ( M !"3GE#-B\$ETF< -T5 P 6 =VAD+3(P,C P,S,Q>&5X,V0R+FAT;>V] M:W/;5I8N_'E.U?D/>#/54U(5K%BR$R=VIJL4V>G63!)G+'>Z3ITZ-06"H(B8 M!-BX2.;\^G==]P4W@C+=EBW,.=UMD2"P]\;>Z_JL9_WP_SUZ]->WO_P;XCW_YH4JK54+__)=7[Y?I+*W^^\E_G]%77YOO?OA:?_##+)]O__S# M/+T)RFJ[2O[]JW547*?9HU6RJ)Z?GIX\^_;IL\???/?=V9-OSK[_TPOYMDBO MEUU??_7G'[Z&>QWRAC3TC7^SYX\W58#_.3W;5"^JY'WU*,WFL-K/GWRK'T2K M]#I[3O=]LK[?,+^&)6I"]6:98\6B;\W,?/3KX_^Q-?5Z;_DSP/ M3N'V\O1_^0$_UQ',TW*SBK;/TPSOX-WZ;;I.RN#7Y#9XDZ^C+*2_PS(ITH5S M:[FSO)W@R_O/KUY:N7P?FO+X,WKZ[>GK^%/W[\/S^?__TJ>/W3X1:GRC<=*_,YK]S% M^<7;OUV%P>6O%R?3.O6OTV46Y\4F+TBDUB IBJ!:)L'/T6T9Y OZ]U4%7^(? M+Y-5=!L5R<=>S_N\7J\6BR2NTILDB&B!_B/*ZJC8!F??A0$JHJZU<23^;3JO MEC0IT =5-%LE[6]>?!7$R6JUB>;S-+O^]Z\>\]_E)HKE;_AI ?^9^[]EX6G? MA/W43EVN@9&!SIO3/6[HQ?S[5_ NO@KDWZB1OO+O$]@W(0K%50/FH=WOSGOW M8U]8G*_RXOF_/J;_:[^+YOOLVGCNK(LK*15ZLG]>;35+$49GP M%_,DQK.2@O&!>]:,\93&V'G) 5=D8 UH[+I] ]F_LH5H@JOKD0G7;Q^\_)*;F*WU=>X/[^F_2UFSY=\ M$,BR:IV$NVD%WA * M!7^>!:C-1IF50!"%UP!N7RMX&KEB!_MKP ;$,8'"/$J&#Z/9%.D,&[4\G -+H\L6>7LJ_1XQWU;>O9PPKP/%O+=YF[0L]-QP T4VLX /PKN M3K<@#.S?OSH% ?#Q'KF)KI-',WC)[QY%"Q!ESZ/5;;0M<9K.(V91_.ZZR$&( M//(%.KA*40$'K%J^D*5%:<82]OECE>]/]-T\L4)-YG'H!3S\#3_./ANUQ1X" MU*?;>'G(]LE]MT$.$OGD>&?P$M3:.//C@=OXS\X&;/PIH/*Y!E3._.AC<'1^ M//9T(< VH#F"\21N?M/2G"09(OPD9V<9&^!X.3$Q02.KE=IO'2_4@"+3 (M [C M1%(4]%4-)J?\@GP)&Q*!.^,@^5-[+T24S/--,R7!-FW/H\.@SE:4[NST:YH! M)1SH#!$\!0XTRL!.>U]M@Z-O'Q_#=T6PXO6 +ZH$')=3^'@.)A7\9L$_D;GA M^F)$R01E+ITH3U#F% F"ZB3K%>T@DMF26L%T'#7]ZXKU/OF;_+*IG[T MQT@UL M7CV3"6Z##&2,['M]6W/R$66WRN-A5M?I30*.6%Y0N-%^?AO!%_/P($]SWP7< M&B.?)\&YO^A=;JZL["'6#8_;%G_0+VS\3?/"^,PA^+FWR4U2A%8D-F51!D*Z M;Q]T3Z_KO%!,E&?Q;!L4"!WQXVK28)W./+0VE[-R3(_:A0.@&GLZ' M'N%Y=%]Z5%3)N;C#C&$>48SC1&<_0%%/A75C%F(RW*;@[!<5G&V9;#]^"I,- MCQF6"FVB[5J0KB@OX1#!=#,+-H9/RJI(9Y)' A-NM9\4 M,9I"]AH4 V"!;3"X*S]F&&T8Q'D&8K>49R3O^7,C6/!#%#LXI4T-$RZ-MNS=*TF8SALJ>MHH%:1N_(XNYE M@GBKP\M.TR^;RU4D8,_)@A5)E3]TV3ZA'+Y(I[P_]/7T(.DW>WJ#GT$Z[X'Y M8]AO <H\2Y< GXDU-$7!!2AH6J\VRV@&7\?12LP#G'$2 MH>>PBDJ;6.3\*BR5KH(6TL %=#DI 6>8ME:G7L\(-X[3@I^XM3*2:=1RGN8] M3H(K_,19$] K^08659*+R?O(=25(&=F?AT9#J7*"[0GG,=&?FY6?UP5MD@). M(A8^&UVU!/>BE/L$&SC .57F]&QE+_%I;B[('!AB)#E-T#U;=&O@"2FJH03? M,\1BMI.$U4'4.4\SB= /;1>"ZBR',/LL.D0[V+6H "88WKV.IA2.DL!OC M,2"G9JA&1HH?@3A:R>4F#L@2A_+<:48VHT33_-U!HHS6*"GA1)D@F!.$J'(# MP@)+),'<.4J4*)/(PQH/'\BE=9UAFEP-R*QYDG6^X[=NSQP;"['7EK+5O[V5K#V3?3^V:WWM+>V>Z M7TRV(0PJ?D&XH80<_)B#>CF)SZ@8"A90&#S%*ENV8LFWCTR$@42,F^[P+G9" MMZ#>0/66$L;?HD!YO^TP\)HCF9S$J>)TJC@=XUU^UU03=N8=WZ63* M+I91BD:ZASP/)()WL4R3!1@925P371&7MQ:FN)2R'6S[A8T:4S)>=80J--0_ M:.+ "QO;VHTLU+":/@N7% 59#B.8)V'WDSWQ:HWJQ$Q-ZFQ[C6I-+L=LK,(C MJY*L5(R[QD7"UBBN 7)"S$#8+H/K&G84+CQ7[X$.[1I_,3[-PBL6::F3! M88C5#,<4[_TER9("!NZJCI^CVX^#FGWYEXN?]V0GP'G:8*]O?MK <(2U5_ " M:/BSK:_/9*G>;_4#7*S>P,(N#Z&T#HH;<-\1KKA-;=!7BT+(L:5]-:LKOF)/ M;^4DN!J<*(5VA$',#%^-5&'_6R,OQ=I MA:$Z+"XO4N)$X@!&&"!ADD9:&B5U&$=%L8,!L&;H16,I)J=8Z#\Y+]8):N&R MB]!*.P+6D%SOBQDCK*L_R[0=[JLY-GHUY M8"!ZN02+G4A7-X:G"Q[&AH]$GG@-R3Q;P)*DQX>!H[EO["A=.-@W>'_S=+& MF]V61MZ0U!EO"F'C1N)G(H> MKB1.VZ6-NUX1#NS&<$*1.=Y5^!...#M-K2TU2_CD(WB$0TGCQC-M-6L_D%+X M9OR9PB5%#L(!E[V-W[N+5Z)?PVD!$S7T[,%")*(\.9K?FX43770SL.DI9/M<6_MBT3'D^://>4 KK M%N/]\P1V;UK9C-;?,OJ+ZJY+NB^;T%C+%EUKLB+C+&F*?ARGT_@!S;6'0[8D M9 BGW)C[#S9L$A4&3L%1=&;)P,)LXFCI2B:1B>+7,26B01'A'=Z,*NK3MD)+?"1Z@9 47=4&GO_F> M6*>.D0,GP6N,:])031++W >&.J^UDGUGZ2*Q"=)/:9ZS!,8P*_(:S+&N7*RK MC#LW^HFID=5YT!'2HGY=I45 6G!8JQ5&@A/6J@/"RQ(/9;' F%3<-]^!U?PM M,32Y0A/<\HN"6_;[,L\.X+@ISI2K!/D88(\ M3)"'?S;D86?4YV-DKG[/Z=YW(GL!%Y$-6CAD.BSH;GBJ4:D7C1"GV_T,R>\I%IK9GKZIT$/\E5T4V>LI.#K.MY/0-'*9J5%6X53'JB MC0;.W#OR-K-'N!".HUA)[[;(8 GI\2:DA?=LA"'Y.LXTP8.23%ULGA8[Z7$C MYN1DIWM7L,R][8*NH]3(^173-H[M\/9TD>]H#BTG1YOC%I3=IK(2;[Q-MIU2 M>/>C8%Z#FRWQ.^?!'.60Y(9=/H MO!K53*!*^&!>1+>(>UZ SXR>NC\#>"SH'O#E;6C>S'>RN2=7]TMR=3^HLO"\ M'[<0*K(&)3,'T,(>H=2F>>8((9;W949)4V4QI>?Q?TDR2=X$A9>$M;*$\WLV M&J@ Z]WERU(#T@"@"[8\X((6$!99;!DN6Q*MLI7)C?)QU*71NR1[,28#UV5' MM*I61AD34I0N<^L=VL++-5;+M,!DXQ-)-F(-CI_$LBO90C7QLN^?[O,B\N>C MJMV;7A5N+Z,O\*T;G4&+L,:CY@1IVXREH%?AZ#N,9)9!@T. ,GV4.Z!<.8/#E,=F1NIM@P M729E7*0S2]6">:5C_<,35^1F8?:-C-BHKI8@'_Z'I$65@U3:PC&!=Q%7S(X< MYQOPQ^#O,H77D_C9,5,:7R2KE(0"&NM8 ^5R+>OPT3EQ?ZV=I?W\*JLTJ4V@2D5K^8XJ)HL\0_4>N/ M)B3FV2L<^3*<=V#+UVW!:==+0N55[%Z D^#77':HO!WQHHN =0XQ!%!@3*K" M-JG;]:U($M# Q\&64KT&=>*Q.$D,0+B3[$<:\I1"_6"59UCKP56,)\$K*KCE M*U.LRKS).22JE7Y8X5@7?HVOG J!*:.]5+FD37RWDK/>;'-0'6):.+?/YLT M+-8'4T[;N0[)?YI''K]\Q[P0_"1^1$G&GOL,C% @X,NX>RYL2P(4S5#*(EWQ M%5@U6!7- [, MO0/SR!YL;GKZ>/)Z[\>I^"R\WK.SQJ$YW>/0.)J#FD>0^P(7;(*ZQ'ZH,+J]U-<-3!("@P%6P?1<[Q:7 M^#CL(A;I@'I@L3S6*-Q26K0['NIRG\"GUPR-S0U:TR!8%AS7\##@Y%7Y-Z#8 MJ;=EI-H@W5WZ0"A[*C$@+QA3JDWJ#Z<0L-E&VQ_6!'.98"Z?#/8E85T: M<18F[O#Q[I385]'WPG7'P)X\.CMN59MXE>O)^W@%=[K1,B2.-+GRK&G@9YF :MUD7=L?\^R=WH4\T,*1WV<['[*E-F=J M),ZB]6-_5,0-DA%P%I,Q5LZ.8]IT.7L=&?;*.;HL$#"'G3NG\ZYGR#L*7LJT ML<+['C:^3MY!^^1U/2*W_,+\DN7M*)I,:[]V#=6C%T9%O 11B(MT!-JWBX9V MX&8L_ UEL+_//'KVL8-U1LFSI&"4%M=X9>\H&N6D"$FJWW0E%*A7*'T^5U*$ M8WJ 2K9=NX/:Q@(=;%["\64'KWH,8U/,:4CM6;A]*=/\*H3I-^OD."\$ *&"=G,E:4W$ Z%/XK#/);7IH,%@E1 M['R%C=U3.D';:2=1)AJ#@U1/YH^>.!Z+&R.B1$K/:KK%6=V7=%K"[A!O,TY. MF)E3/J9=N15'&[2 _5+5V'5^A/+7$/.TQK*DS ;%?YE^A5@WG/'0&A;E,MUX M14>R:(NZJ@MJ3X!N]X9U_2WU*JBTR4]%U#8EQ_BPZHT;$VS0F4F% 0:?#]_< M1AN:(>+^8'?QL)C6,K,-AK")N&T?!&;33;I*KKDJ"Y,:E:2^3*LC,'\3?'EI M*95U\)LXX>XT0CO3O<#]>P_QE#0N%/PUOLJ"&#G23(C?.=F#%)46_\>7PCU62U>.L/43@LB0R MT%@N&B9\-_K.-HKGU>F2.(LH2F;NTZR.E>ZJ"PI<4+TMJ9*DK%>FW=LBB5!! MN$^EM!(##%2&AYYL]Z4_T\%9^QPA+W MMV <-R[E$@V:S'B,PW,*]#1#ENRI]N8D'[K9$Y-"16L03-SHR&:U8-]Z M:KAG_+<*NW<5)[7'H]7A(Z[& W/'E66]9M]?S8V>>R.<&YSF.3+EK;9#3VC@ M$=I-=(_].+NS5_#M;3/XM,*P W M*OMN2\(>PJ/H\.S;]O5+8R:5CHMT MX_;WD4(-+&S'S1NZ&SODMVYJU*G4D6->9#*[8: ]S'#&]K1< 'NTN\;_\EA^ M@N>&-&525KIJ S\-CIJ2W<<":;U%A]M""2>[9?U'&\U&=+9F ,K.*G?MVUG5 MDM)TJBEV+GWH+[Q[JD):7BI\^J =UKNK*#8NHD'GB:[X*WXCT@P5'JC=5BW] M8[^#L.P](0M'^W@$V//222XZ<4]:\7<@/ 5L4O!KO+V)$33C \6&/E)N3B]N\ M,^G6/5:,P(-_D5>?%,3/"I;/(W63%TGB0WWP_Y>@!Q_-HI*_/QX*>S3PB_RC M/#N \.[?=3:H9(UC)>.DM=%$]U:U/Z\N;U?FO,75[ ^?.0D\-:\"]DAHO)J7 M(08$>&R98/Y B:"M.O3Y<+5K;CYTX(VUZ/+GSKB1"*; N%6D6]RG5@T_4@K@ M&K\FLS+%$M LD] _=Y'(P9R0]6*H+5<*2S2FI#.^R+FI2S.&:('4MJVS@>F\,P4GODTX1D)Y@\Y6;MZ%(3:$2F_3//>G.#K2+,)X;F,011.J MU2:Q#HF'O]/362- F/^GJWGXXX7W>*0BR4(# 9NPL*7^L)TCT]&I0>W7*\E M*^P]%C57S67^(+*CPM2!F\?S+8VR&J#JGB75+1+%="K04.UO@F+ FP@;WJF^ M[<+-A/AU(CNS,RTWRYH@\%5:4&:M/+9CH2?;T$P8AQH+;%N%3M M;_+;S@H;:SUY)*QTPKRV -CF@0-,T3S?5"VK G.DU';;=K6FDM\#(:,JJIR73ND9S//LH6,6O+XZ-MQI%>(L:3,+3O**KOM(R0A[83F- TGIV,4[@\+ MZ+8JQ993>8:"N9[Y74%SU<:395M(ID*5R)*@L86@#B$230,S6FB--LT_A')J M76[I!5K9A_:"K279#&IBH5)>YY)V[#$02U7#G3_:D2O8B-&VL;>2F%6/3=45 MP/"7NT$J;/2@LWH-P>/3)L%WTK'4XFH\\3Q M:MR[IKRXN7"4/%9WE\:%^(2"(!?TG3'84NG=E\R/331FM'T@:7H.7,D?^.,D M*VV]H#)VBJ4$*IXK /8Q+IP^?QL.+7B$BC98,T7=IZC[9QIU_ZR-IYTA^884 M<*$99=CV 5KM/JEU1P.#[A<(L+DO@##4G]$"U08YLR0>RC*/Z<_0*):2ZI"9 M1!0D;)P44E*&:J0G)LPVBKI:(F3YJR7QKWZ$ 3B!8*8']+ ?-2*34H'ZI"!>.<=*TOP)M=8[;#1ZSI')ZK#'1UC>-992Z MS7;.H^-&E 50BQE-AJ1A,*B=NJAAJR$&U#$A^!2(J:)YJ41,%<\F63B!(@=E MY1DQ/1:EM8W42)O\\LDOG_SR'1'A^1Y^>9-3CU2>>W1'.-FJJ5P&=LXTB5#[ M1PVN%OPJBU*LV&LF-5%E&%I M_?S81-G3^_&M_("!SB)G8F!Z8MG8$KN'L]K MUO<3\S^7DQHTL6-#H_A8U$66ELO0 C!Q;(0X]@U;Z0OOYH7\%O&MVN#;:!0>!HW"D[V(G_T.DB!EL-S_6N.H M)?:I@YV+L!CQI>X%O9M:5ESWXK!W-2BJ;"+ R<*3#R8>FI\'P1) P=D;CFMN M"YKEG5Q!'7(5G#M:R=7*\SP3B;:[_C WI=T:!#R\82O<=!A"N*T@LC'42!_( MCK:+R*>A59H,JM&J;%)_*W_=K*ZXV+23I%J7B#@+X2!H96-I.D3-3!$"KPX% M0M+JG\]\-Y90:PP'%2O:CLVUDVQJ4FF3DS\Y^4.Z\.D>NO"MZ 6T@E<6X#[" MS?<#@ET%@U';DB9&0 45'V'(+\;<,H4L#1S'X6TKW>Y^I$GXMR391#(?'(7Z M 1JZW0ZM@_7L;A*8(7":"?;B)BW-0D XD_FC4?T#=!TW4)#4K1M+UC"V\QM! MEKE(*P=@M3MDS_EI$N+".^H/N;-<@%4:JEJI,E!:6E.J:E>1>7;40BC1!@J. MGK%E8'I*L(4PY8.G?/#GDP]V>Q9\UNI\9SJ8!?CQ"P906>$V& 4^4HXQK#XQ M753$4+3B@2A<[ U)HKAUR(J_.C_6EI/X&"KWXF;C,?+"1%0E0\4M1Z=HXX,0CI8HC?C23@]KV.GI'Y'$I2#DJM4E+$C-D M;IG?^N LFXX;H:AIUA'3;E#1FL*4XP@W.\M[JL>&\5"Z567YQV F^9UK@R[, M2NS'2L+O6%>6NH+;%'>[;Q(!D,_XU;:>[,;O*+_.M?AP6!:)JMW.I*26U/MQ^[MZ<#4)L#WC8,%F(2:-- M_N("R3 ]E*YG=5&:(:)+M,ZL7=,% T3$6YQ(D]XQENN>.X@Y8O3(--\7S@1$ M%$8:S&DB0%RFMI/RR7R(C15:> 6F?SNY.L%N,@2++$46FS[3>+X0/-*'2456[+341&'C.1PS6&V=5Z+4 MEDEPG8-OD/'$81\LX$I"W&IA!G^*:%[D5-=7(>!82VB)UG 1S;E"$4&D@MWA M[7Q=I^B%9'TT*2\__69PJC@E<=&)U-A]$@B7\NJ8-X4H6VS!C7!-@]%P%\?- MSJ2,1$*55F=R0IW.8\WGI' CK];2\-<0JZ:T*2KJ1/ E!0D(>8B#*2.1PF.: MYVTIF*,8QX7!X1-7BOP2IQ5D1%..XC7%Y7=['C'*R;8Z*6/-J'/-'$-OF Q,&W-,6F@)I M4R!M"J0-!M*^V2>0QBY)TRM[6<5_*IA&WNC\5F2NG6+4-[01!##ULH?IX)%7+)(W.!>MC1KI:IGJ5C M]4K+*!DJPNAF30U,BZ/.E%!WQ3_-GJQ%M^];NY[%6)=T+:P F..]:(46(T%N MF[(X:S$)\PF#]*5CD+[=LPM<'W5E*.738 IKZ**;O>WE"Q&&T]8D_N-MYQBPS:.OFA]QDQW\Q2[1I&+W^U'?(1Q6W(? M0VG7 ]@_(F#I4,N%L]FCLSY)/412>FR9H=T>S1W+)-;WC,F/*G]S#_,G'V6>CMACM!GCG_TP;YG&G"?/XHUDPS\X&+)C)X_QL MH8JG#3OFQ]%VS* ;B# ZT#J_L+XEW7?E& JC',.3X#4"TWS.$^,L"@].,N?N M.*4\L:\E:*0_)?IOO!$!XJ8OPJAY M5!*QL^A)#$+Z"$IW^%%[G-C7"Q>D&9.#_V2/' >5FWJ(W>.^/H-@.+?IF:,9 M-9A"TT%ZD=( '?(CGK%8()Q*K!*O)/(H/K:#,HA1_MV2R-T$'2_?VC4PV\($ MCYMP1#?X+=V"Y;X?BGB5)IA##9QMB:*9*3OFCH\:J)SWG,CD*-46Z/Z+)AY];U+FTIBBFZ-EY,*'"IT4&+PP0K/F#^ M)YBNP,[/4>EPS;MQ@29TDZQ6;,)(J$:RABZSN%E7WLQGQ4MP -:1"07HT)U9 MTI")<9^P435C0&T]O (\HXX\T!TR0+=1*::=(>J<&TH QS,,/VA[,1V6:N2KR*M$.IMC25-$Y/^M^Z,FG)?2J2^:1RIKS\EV:) M-97-V<'R\K8G**!#MUL)A]F=\&_Y%G M/.DRN&)8. O/Q[IO0G/_.+\3,_A'6G\@#3Y!"5FM7U MS0(_3>CPK0Q4*;61UWLI24H+J%^E&[MJXR>C<<6=* MZ[;!6DN9:0+'NZ6V$*G@LDHU"8.\ANG18L$4^J8K M.!JTS9@%7&BI$>)574KFW[ZEH9QI$X;>8GL^?1H]^JX/9LGFH;$WW4Y_U$9> MNQMN:&_C/NAM.7%TZ(+AW\PS*JNIWNIPQ$4-J=++*^K:#IW$XY9PE -][4)64'YIU60:U8<=@%)TJ 3W)/A; MMC*M]RAX[,(XN-B_3<%/[KJ2_B1S#Q=R8S/L]A?'RMK?C/Z::.=':5LZ3K?. M\T3X#+@=\F!HWRDKZVB$K-,)+8Z@/WQKK$0+,_ 3#DP0@-7B61D)^7U'@#MK MV;Z1+>D"I;V(;EA;$$P/?V73$H@W@%?6%4TZ"=KQM'_^VPG;-N!>.R^T$#*B M!R,"LGF-_:?J:IES*P3IG1#"XF31-<>KD,8B<_HI-$HSS,WL7:C:43FE&#+D M$"PV?A]EC" I\BR-^15K9,Z"E;I^BP:=5*:T.YBH(=;H)=G*3VD!HKLR\,MY M'2?\A4Y#077M87*G# R&IN(3\0U:()"@G.?:*=*5;(+T=B^?Q!68-.PTE\?RD+L7'SE=2/#29[5/=>N_H^=+_BX"YMKF2('WF+7".GT M; JLT^0PP)&@F89<@=9U?T&W-@WKV1]\>.,P*'60+]PWQ>#RKS)3K MFW)]4Z[OB[5^'[*!>T^-V'WX,WI;9#1:4- _(BH7).7T*:(/U#VA#%8YMS4> M 38M$C"*,HJ\))QY:2;Y+B+J[O,J2XKK;? ;!QK*X/(R#'X^^>W$\-4YC X' M3VOP&/;,9N# +L#@J,O@[W^%\8K?1GW^^./P@_PI?7.3[#3+4Y<7! M\@V"(S__DJ0H_]V%SCMSLJ-C=1$=$A)&9@)(;E0)-^ M^./QIPJS=18+"@N4ME7I+QV]9T&:?W8]T 1(^2(!*:>/?1UGS]3IXT.0+%QP M,0$>IA_%7QK)J^#2,GB!78>N,RDYR(*],"2XWX?B;][E"+\\M"SO>?B^PAW+ M1VPT!B,&C?LJ2P$!_]WVQ;.2V]KQC])D$;PR48C7VCQY^&>_\:H2.W3OA1%L ME P=WM]1%;1^@O>1:W7(#E")BV2*D9@K:X3;3X*W7J!&X$\Q%924S1IIR\505T/+U+?/,/44;38PT\KE(9:, MQL 3>9@F%N$R+^2;)-/H6B6%T:GM:+C)05\P-P#R@#&TJDD9[6U^HO)5JH9F M,!03/H(;GS;ZA9F>P/_)5S4E"[?S=AHQIM"BV,F,PP5/: M'EX(!,)E+W*PU6 )3:&N[AC1K2]A224>X5D-<"\!.9PC)+RO&?&^["I$0[ M+BV7;G'[=9+-(V;S%R80$QML1$"E48>=HQD8'#G^Z4UN(NG.69->&O>6&79K TN('! M.CZ#-(%IWN";**LBC%WDLJ+]+W#'Z,L!&X4%^^=MI;0W #& M 48AKX:RC]"D^%YP]F#[FO6%OX7;_(;WCC]BBF%S.#NJYVE.+4C2LB8F=PSD MXPSFR0UE(+HTXTA1QD6&TD58*-TEL"'O09?6(("C2KFC7)E@ R =LB#DUV2Y M.D@4W5)?C2IT<$)4@*DEAO[K8I2PZD&W?/%6.E*P.,)FQ_W%EQ2@$&NC?TM1 MSXC2 3"%NWY!0C;O&SNI!NW9W#&#L:/O =?P)E.4B4%&M>&;#HM54\H.R]5A MJUT&U,BN+)-5;X6TZ8JQ0=J9"(\'VDY&YMTW\,2]\LLG2.B#@X0../2GAW#H MW^C1_1W4^$A7_M^R6;EY<>6'$06FOPL.WX"FXZ\)9N7PLC<O*>>1U$PD!* M1HR$'4%.R.;? ',?P> VJ[J(%*2*5@URRY6FN[,S)?@]6FKMC<#!C]4./C&S$WYA;K8T:D) MYI0/_VR:8#Z,_I?:UKWG[(=!WP4=)60;XB;'TS>"'6Y;KZJ2G3 EY147X"^F#9OT4D02V@[X&$]#QZ""_I M!8/.('J7\XZ)L)HA)XX"E10Z(^@B:>R>1;25<>XCL=68W(O=0ND9*+X2NB,P MH,R-%1H&PII>RR[4XZF6'/6^PU9./;P\63>GNZE%Y?!*<=RI3+R6QYYEI'Q/K#-HH4C)8>SGB?+@S M][:Z^*R-Y='%#16EA[C/F8R0"%!LA7"5HVGFE!EU;_V/!^$UMON.##=UP<#3 MVQ6TSIP3CW&912J\G;PY<6UO(D36;EOBL M@I;PTV$?H6SZRG*2L/KBRA=(1N12?,Y)89BBC,K=Y<;P!8[091W M6/42!H715\V6:,8]K+#;Y"(BUFO[RM@YZ_)Q3/_)8]D(?! C-VOIO"I/OUS: MR*HCRK4X 9?,+ 2?4"4]0MY;X]PMTTW)^XBB9XW-1"36=)YI0X7$@["I5@W6 MX;30]"4'M/.&$ G*:"T;BAC/'=-(-ZH('@D*Z^B\";]U=:/GH,J/NS/^\*4V MX9Q1$)U[,Q7&*1],S14:5+;>G_&?V3EMW3YU20/"8*,5BB>S1+!4\Y1P44@YF'9]HR]X\2V S\_ 06T@5.;S. M4CJTCO[@Q*L64G)X02M>$<)FZ/A-Z24O:6?A(8ZP%=F1Q(Q$\#TP1V23'I[! MR:3:'3/4]:)3O>9(/Z[9;8XE!"5Q?=)#XV6>4LBK?_)>S.I3S+YIFW4LQ!31 MGR+Z4T1_3$3_[! 1_;=H5-<@9\9SO["]VW9CT:-# 1"* %]M&<*E?X4J;N#8 MHW.>WV;*AHE;92S8#CA%G(OH%W4 =%O38L _W,5F*J"TZNDWC*[91^X5/E.(@(;]%T37KI MA$SZU0F6Q!&*Q6H[">.I,OV+JDP?D*9/#B%-+S,J+Q YH\XA'/K7#HCS0@"< M>!)_0_3F2*E[WI/*C$3JE1Q;16G%_E'INI,^$',=;5F$W2Z)(\4RXC0=!T'D M**K5;8Z5FMF&,A3S"0M0LQ@.X([D*@C &@G7*+!(/#Y-L0022:09RZ(T(1=" M^CEUH_:H1)=@SG!MLMZL\FU".>!KIC%T;%JRC)FJG)"YGEG;QJ\XD71U09D; M63%?V G0+HQBT@3_Y""<$5:ZJC!Z6;GKQQ$.>.$QLR_9=<05PKA(*4.E4&26 M^RMM;VGZHLO[$GX\9J##^* X=#+I*:DY)36_D*3F/5&\.Y.6 STU)!'E1N 8 M8VP/>UH."NO="-AA.=XM#T^"5Y$KW$/%'&*^:DDOZIK2/YQD"S6E1P)36NWA M-/((87TDSZKEHL;XM)!(<<*+4W3H'5CQ1S!]@KP&Z9KR11S X!2@(EPE1#5# M;D_X_9(D'5'(L;/BS+"!R9>'^N#Q1IO)!VX%/]ZW0#W&H%'Q(0>J#3,:-FW= MY=['R"5L+(:SG]<;4-K(#/)1RM;W7)&!-:"QJU )1*IX)JYGX9YC@A4VW^7E MI6??SHI=' QPQ8^OS]^\#%[_%+R\?//JXNWK-UX9.3 M@X!FI7T>^'JWXQN+H]8RN']2=@M0FT4GC90)L3.YXURZ7%LJZIY&UPH$[0;? M.U3,1OJ48Z46;+NY#UUE%D1TX5 >2GG"U>M7?<4724P!HH8 M$UFF%$V>TC%GJ@!QBM;@:6!12.T:&5+DR$6EH7:?,7LW6ANY*1C>Q4#=G$^C M=D%'3*41<]S9'1E,J>ULY/,8OX053\A@:SN/M_N.A\8RM*YSZW9DT&2Y-B@K M:54>NN4R)5.F9,HX07^07,JO!!T(@[=)5A?L^OP7\_@R+G"L[/]4M1+CU#B=I=1(8? M-(G$221.(G&$2#Q(0N0- 8T*P^>ROP0\&)CSFY%\:(4,V4T&-%%Y6K:JE!8$ MM&,[3?N=5O1&J$(?P_IEJ+:H4US;EJ!^EL9]\B2X)L$U":XQ@NOI(037E?#! M[2NX?!JY/N$1P_]:?AWM2J5N;A??TRY6IPYHXSI!$ZXQ!*H$P.0J_9+-+HOY M,V0:EH4#"6K(RQZ<&5<4O.?0 ,H[:TUVDAKI7;#BQ.F.+0G31A/R#FZ^22Q. M8G$2BWN)Q6\.XN(2_>=(8?BK;=G@X%:Z_;CK%&GET6>-W,H/./^8S#,"(N?B MLCG1P8$8T_XK,VSY0Z0P1-\/8H?8XQ_%JXA_125CA)]#0O\0(7K@.!=N+^I% M%)9ZHM 8C?7#59@F;@% 9TBE@MO6>S8]S>STT*^FB.B_9?37546%'6O"A90Y!F(K=\=*T!1&Q( MD6RB=$YL"-C9N[*M!JBD4=*Y3#NC.5^8$<:1O75C!AEOY>XZ-PHR\(\P<^RT M7>#ZD5W/I>ZEQ.&J,R)T.X>I31^Y+(BVGH$MP$Y('3$E9O3 MX "Z0TX45=CH2QCC&"T;:X9D"=6 ."&NU'LO"OXUC$4)E]$0 MZQ[6)3 !%Z^8VT*WM-&L"3,U8::^$,S49V()[L14<5Q;39WO3D[!K? X635> M(VQ ) H50:HB>Q$(#T&#&TB+H[2"$.42$['QY[=1>N,*&%>T=F16=93/3I[* MU?>VQ>WDRTR^S/WT9;X]A"]SSG<#.^5ZB_N:5 $YQ&F/+/<_!)&I40V*+.HBQ=YW799L$.!>I/:T[-WN<*IN#J?[#Z\[A>JT+( MRJK@OQJ3N7*)OLE?TXF8/UXF(/2CB<1R$ON3V!\G]I\=J"G% J0=&F1OC:N] M9YC_EQYQVR_"&U1'4:\BD.)4O<<,54;$- VQ';D7)-"RS_6ZSA1J$J!"VI!D M[=8RQRTDWR# M9DJ;SCAS7KK=FYW%*YM#--P9C#1T0@=!/E/B*PV!2+1! M4C,5DS*(8:XYE#8+BKRQF6@9KSP0AF BX (1;W6^T92UU\,WU1=BK E]6>S <6+-[R0VQR=O0U^,VH^EZX[TOFN$.#@73[JWLM4AR M2N[E6*3VRCZ:)X8I-&H O-M3XY.\N :O]'^<78EF(S+-@5O,YT .N+59:OAR MY6_.K-%YE'QS^&!>@*^YPC$E&?:-\-G-0/;<=!W[R::9;)K)IAECTWQ_")OF M=Z5WW-^LZ>3[,X4#XXL&,)$->M;I7,SQ/?SBD4L*J.A\#FD--93E%&Z6W*+; M5"044W-I*]G9$HYD5OW,Z<]\KYK![3"?Q.-6WMH\\TR:YDU)P,/CE\CS5$I] M>.BR6-(7_W!+-AAPLLYO6'92_,^0MA8Z6$-71?I-&%/J)DND6[@/[TC2^SUP MWY#K+,C)[&F.,UQ/<>X.52O]L/@>>:HBLV:H9BT#\#Z++_'6'&'07*&AEBCW MAR;MDS!3Z)+UY)QZV.4("<@MH6_K&0[ZT#[.F+ZJU5R[N(3K*X%@Z#.91Z7) M93UIM(G2ZD%06CTY4 _?-RS][E:Z1NKDKEK#X^QKUO]*BH9DLX7YW*'RC(LV M[D;XT8>\^$Z/K[S<"]@4LR)M[)AG)]^?_(X;%!MC![4 Z.OR2Z?YJO MH=ZJ,^H3K:HX(^,>$0_#?9]MQJVEU2?C? HW3>&F41+L((05%_EZDV0E?3%2 MC+5Z7VA':MN"8Q>GC@^M;[KR!.!22J$M1RRXKC!V1NN%(ERLVB(Q+2[2]:PN M2I,M2-[CKY.R35].U-TLCRDE@GT8E#[6:1J'=2>8./.B3#E[(?(LSI'@-+C_ M%HFCO*X>Y8M'&Y"T206S*(6B2 =$48I" D/+=$VIDAP<&6D!2A2(Q#3.E2^3 ME)Q"& \EA'% $HI]&'C>>NW0J7U=2?^DP]@5:]\98NB3>F@]1?-\(V"H[AX] M:E$YIE2_T6?JNX@-SDV6*H<<7C5@ABE4V X0:]]E0774D#14\ M&G,#FL;N#Y&'HD82$U;BA MV?M0"_G1$)2B7ZN.R#;RM"];FVP>L_?VK&_F) MWARPZQ)E'22I53<3:P,[:),C#7M@),&L+8HQF5D.*R6<%6^:#^P480NZ]])_ M O'FT8;:V!%^"N\EZ? @K1ZZ-3&%?::PSS@I?)"HSV\809[71?+"E+V\"/:" M4Y][92Y.>YN/T(79JIX=>%<)JR]SQ)%J?SG3# /%LH5[:DO,RJ')JH09"]M6 M9@RUT49R-U(C:6^'?7:XV1O\J%1XC=]TFP?T+DDVEE/0QO)QA&XLGUT^[2G$ MY8MN_UW;J8DZ#X<.;0>Z@AV\@_J)8&(+(2)T0O9NPUB97E$Q!J=1AM2%56I? MTD==B*VKL-.=ASZ/NI3JTJD4:O5K58WGO#&JK^K'QIN6*J-ZP>I]6XC>=FJ# M/':I'DXKG8Z=?SO?PSY^9-:86H/[5LJ"^CTQOE@O&VSX4H9>E "#E'X77XHF MA$Z,P7^^VVC1U@EG;E""OQZ.2EP368_VNO9KX/"0I%DS@B+9(:>KO =5EZ'Q M[N#Q\K@:"V:'J>>]M\6Q'6/3=.L=86L\YG@4@\M"(VI(@\G$F6*V7U;,MM=& M.4C(]JJ>"=J3=8D4W![06W1(7MR>? Z1@B?(0NK$QWZ+[=,7S90:Q@*'J8*# MH*SMBBM?WU%C#=(F,]%X10< F3158K"Q376I7Q4M]=5X/(HIE'7>2 GPRUWH M<88)B;6%'N@5(S;FH[(>;F'+ S^FEO] M@54,PT,0K\0:4HJ-80M:7!]^&O;)]:MEA+4V;H5&TO)#HZE-:;R[C@=?CJZ* M1+!69;YK ;K?F? *)PIRLTO+<<5.VB37C1ND5FH_D]YB*%C#G@T"7_9U4Z"P M$GLU8>E_!V+('\3?O(*WN]YB3$EC(?K.4@E7F2_,8>B/+;'@CO6 MAYWH:G2-X!$%*;<.8- NC+6\V\;!PW@Q/=3-.7)O&WFY)MQ,)9^\J64GTS X M^DP%7I'#-M'(=?I!-2<2[?9?]MY2(\RL;][IX;CG^^VB0ISBE\N"-)\6H;Y**>O7IG8BIP/E)Z)J8K8%8GRM\X2LLIB*49RG!= MUFN9Y[B$F$I20\TG$3L2G!0A-8_'&:+^Z+2@PKN*:E%6RL!@7JJR08':^ /T M<&Q2I5@[541QA;1:3'_1HG\23D&P962MB(W O"G_I3/R9MMQ7YANA/2OK9VW M8(Y:6ZH <[])BZJV[0=,G\M9LLTE13EW*&+-]T*=8'99:+<&_],AK\!EY(]H ML4).)6+:51+8/"7J31+D<5S;UQJY!1VNPH8WQ840:\%!TR+8YM+F>X(!B('G M31[.[536-2G72;F.4JX'R9UU"MD]U.J00[UA[X94RJJG&=PHMQS=84RYNTZ, M>,\#A0M=M0I&FX)@QX J#4R<%O#3R!=CDD64CJ(2B1W(J$R?EX=\(>TKSWZ2 M=7"Y(P1&'U9;^TN2T^N&$?%75=GKZ%TBV)[2Q_0H/J51H&NF5"8R5/R#MK;" M#11HTEWTV^TLX]CCJ"BX+PX2 !(I^M#[(E<8_7ZL/:-NR[U.%:C9,N]4_Y/\ MG^3_)/_'R/^#M"[M.:%[:8#NP)C$ >.*R;Y57B?FPCC"LU=M'1$64:1KP/H7 MGR*:K],,KG3$.DI9 X)HR'TE#"I]$+L.J:PW6"Q;RH\);)FOTE@C6:)01DPW M- .<&5@BQIX2+AB6D:69\,DIU$%'W!TS[U!50S]@:M,]5._0ZS,=,KPB:W8J ME8HM$CI5VE4;950"]*ZHYJ9@)7_<0\'7?'*:/J\E2[*$5S&]L2*69*W!R0KY- M[F42G.P :H?KC*N$6A;TA/::T%X3VNO!H+TFO,L#P[L)4J7'2;H!,1+#SN-3QLOLW3A%P5.HS&._4P\W3A2\L,,C+%7(#+DY7$A*)^VSU=!(9*,6FD.U0#;HS M H3YDAI+K6AT28.K IYH[DLXK0X_+ M18UY]W*P[HLH+E/8X-PW&_.G:491$?.:C\<-N1GJYEW$&9-D., N&!O,7> = M7]!CVJ^;(N.X T/-,8,S@CVFUXPA]J9(0?V.Z+N^IF8NW.6G1FI!:G+MY<#] M[UY(+%^MGM .V,UY$.#)3]%K8EP2]+ <]C@VR@5&P,V'G*E)AT\Z?-+A'U>' M?Y)V:.>-)F,^II.EM&E\1>C&;?,:)ZTK*$NO/9C3#4P$C;3H\HH6%,]49\G[ M#4E3%,N.ET,MJ@;ZL3+#DC=2,PD#(]X%J1V08Q\ZS4EV3AG:*4/[N$_X':;Q MUKF#?GC#Q8-HS(J%D,@K[K M1R[SE36X32/CIB6.4I *0$J[^OXD$4UIF#FSK8&Z:+$ G@X*C>-% M',ESNY8-%7YV,P*8^O+0QFF-(K:E#O)=,S=5> 47]+LR7U, F&)\8D_P7_$J M0CT><,N@U+*]\MS$H:HS9Q7(=R)/M,BS-);UX"6W:V-BO\,K3:_(P*I-][96 MP)66=4O!O+0L:Z\P-7F_3& M %*/A.\]47@[H7\J!1H]E5O)FL'>0^S![2M$*M$-!:&-IRVDFP947 I)@U4F).^X$"A.Q M^KVAM61;X=K00[#R>Y7:W**KLS?*.B^\T;K#T+.7^Z19\P%H % <0-QR4NF= MFY94&.RW#$ZBK5G/O M:3:5QG%>G*0$(FB!\'W10?I@;+LU>UWC_A/8LYZE/BS0"%G9WD#6[K,H'DK> M8451C0.47)[;H-:!+PFPJ-6TS#?B' N0-Y/S'9E^U,%%"FV%6<,_@V5WUIA3 MI# 8DS,F7E_BR' (.L*&Q&.K4@4BD@MC3P&9*1'!8Q\##TU!5M M(I8+C?$5P7F##T&.[C,FL=.5(H.>>C(AXZ?4ZI>)C/_V,"1+/^8J?>? OGU8T%C/3^?\T]:>!Z[46/6>"Z\[V6IDB0-+,TX$1>X"K5U2JY M%BB'H5=:T>3F9DK<^P)F:DAM2.;G\]KF 8AZ1P(1Y@.X42DWTDO)_%Q46@$[ M3U8I-2\16\*SP9 V:98SZP*>UG6&YINJIFB-"LP8JI8@+Y-4 @M/[NX+?U7; MT-=CHHH6*;:N2"/#5$D".&6#0GA_X*4A7B;-,S7^'GH:8(*K3'"5>*O@.A!5(OK(\-3Q-?0;DIL3;?CJ;WA/[T56Z^598K) MD-B7D**P>"M3WL0MKT#@U=S3$)]_G6$_0,+2@-1AD6$ZY,2K*%WCE50Z(,%C ME8ZM\4H_B*@P'97X+NR]M1I4I)6;@D[>HXE?VF!EZ2&C%TXR!:DGDJ%(A@?66IT(B3]>KZKB9"86-T'$PC MZ]84=.U*@'71-C>5!#6#S:A''')YX6O%S\%&C*Z+A-'?$FMT"@98:L/X4A;W M=NQ#VD+ DA)I0=D+@I-21%9TOOS+Q<\/74).P),O 7AR!^3)+Y=7%Z]^_OG\ MUU>O_W85_/;F]>^75Y>O?YT0)U/@Z@$%KIX=!K#R4UK&H,;^3Q+M4X"]X%]M MDV@0BG)-Q7M<*$U4R/.(0OW_$66UUAHEF4E[/CFUE[Q,8M/;CM O^*R'KO*F M(,L49!DG&PX2U'Z94@!W/IK-98?3CT6.6KBR$T9A-Y'8 ];F^'=\4OW#$QY$5-_UD$+*SE(BE+#K;@$-_C:^:^%Q4E%W&9%-)!Z37SL!#?&J/5@C51DJ./A8-=2S4KI10,@*\N$N'=3YB)..3F;)12M6?#" MMF^L:!>:*F8!2FI>!T?"%N4G[Q%THS.SCRWK8K.JG9@[O@AC^'E"QJ6!@A2U[YGN59P7I/( MRG ;FGSH1YP.-I4"H0W>QHG<_.D+DW$<]W9T>I/TG*3G)#U'2,^#9#?_'B$J M#"7)KP0T&"E)_[Y,,FK*AD:70!12AWB)\;I,UR6E[%Z176$MV%[*J.XR$4S0 MA3LC'1(-,0Q@V+CYEJ?J%&7<8@EZ=HVE^]H)=[9U2]@H7;1.R4H.%=8L'HJM MZ.!_E1[.A0QO7AB+^!!4,MJJQ,)%F4L,NY"#(7HGS1RW!Q.WR $#RPH2Q;%E M86F53< ^Z00V&+MN5.NBC2;X92B,'RW5"GM:R HSO5N V!(N^<]J=@BHD7.T M:G*[>'E8N8F!^;7;-64)+IEI"ZT=^;;Z.O 2WC\Z%WD>>))PHXQ)W@BAJ-Y0 M19XD#TIH0V'Y8>UKQ%GNO+'!T-QBE83S*B-Z7NG<73EP%)5C%RO(*9F/%RE[ M&0;E,V>AS./DE;EU%.(!FU>D5#;.[_ \88X:MB\[OW%$[#6TRADG*4;KR(.U&WEAVJ=%D7G#(K:8K_%(:50M=_75#*87#)S9;WXKL1^T% LMH MF7%*3(6AVW-50UG=;9ZJ?O(<_M)2RXNX-)R'H24]=)_75&]")TGE-2DWZ),A MQ"L1M[9K4F:K:$J,5[K61YRD-SL(OCYP/EQ[R9C[B'0XOA0L"2H=%2>*G H. M*+BX4B8?IW6D[;KHJ="6CC5XKVS;7DJS:),NF&"=#P+6^>PP'30U)D/+PR.SH_'GKZO_MQ= M$2(%9@M&*1$AW3(JULCD9WPE]'BPR +FAX>1RYJK+N9NTKV5YN6(HB M.6U' M?'>@B-G91C[E-5(LS-G1%:U,&S/3 'U5+(F+-C)WB72-% M(2XP(\UN\M6-=73M#;!E)F=DV57>K!)RQV/.895U2B8'D0PD<_(=U4:,P>9; MA4%P9.DU?W 4'3S*:\;&,O2Q M/W$?@[VC'7ZZ09)VSV M+,%?PWO-/L:&NL .,G ?J-WO]^FLD>#@B]1F9;&M[$;%=^?5MZ*!>X0$6-T MRS;[W?NM:2L9AX93;\;;S&R9.]PZNHZ0TB1@(BLV1&Q6G&4G5OT&1^:=,BE+ M7E=P&8A+3;D+T4RIJ?\)M#6!MCX_T-9]-R%WXK(6A/[YHYY?2TN+!08TPN#5 MF\NK#$1RM#T+ MQ"W-]Z5M5WOJAO"<7)HIO#R%EP=\H1\_U!?J\W?:M8D'<'HVT5:3661-.)9# MAY& XNK8"A2BP6M+D'FR$(^&7"K'[@*SB*,I"H=$]H\5\GM04SU8@A<&PAZ" M%WB+Z>20G0*#UZ/%Z._:%(K$BK8:LC%S\Y_/=3*-Y^L7SJA-=)9\O#R#E6WR MSD62GJZB=Q)J9_/?6QDJ3\7UQMNI[);QS)$]BHK^\WI%J=$:Y/P:/,05%NHB MM8H2#_*0066PJ0H'BALO.LA$BC1SJM T%R2=+V7&U,3)A<:Q*:8@79(7R76. M?S4!2O_\]3=PEH47.J3%3;"T(;[CG@K[2$J]^*UJ6;,3N]YIAZ\1N7KW"(>. MA#F"&D+# W2T%H1TN2^DG--VP*=]*XH1=C<#GI37I+PFY>4HK\<-Y?5R#^5U MB9%JILI:4ES2?4$,=+?+5*K\UTKO+$VC(D6.UCC7B@AZ:J:I*WU?;X.C; MQ\=85%\Z:$Y76BXC!Y*B*T-2:<%U7FV3G"/*_CH2*//^:?V!Y4&V=%R?)WNM MCRFR:U3<2:*%W#/+1JFH5G6JPBX'A_45+3FY<4>SNA+V-]3@QTURN@4%[3$+ M)ZQPVN"^SFB>;LD8$@OC.SH)+NG/."E+6 3NOI6O)"-'JFA@;(T!: VFXZ8+ MUWE)2"5= T-(MU^NE"B=#8Q(TX[=6MY04,UJ$%R9#..&S]!H?]+)E%%"U!<) MN+L'=W9C^).VGK3UI*W[71-(J]/Y)TU1-Y/>XF\3RK$")3! M%A$%Z+O@1G[F ^,K0CLOI)4#QEWHAG35V4=:3EH'YZ+K1&#U+T1DB5TQ?_#;WGR1#2K*P+DAHNQQB^'U MH"5-(!9:(T0#&BIUBJW5)1O37=I-5]A6PL;/G/)RY0,8OBU M^N@IVT(0UC^;1[9MD[N=.DH/*-2-+PI7YF9 3[A,'7::9&"TI]GI171=:Q[? M%YM6>X+K8PU>O:"^"JJ7%2XP%,XQ\/@F5]Y=39) #1_+3\@I(4G,X#(<=:QH M6A3)31X3_):8)X@Z$/8]K&^Y-'T9L%LK_;%[N"/V)@' B$*1$@'8C &/1SJK MM9)H5N37-LANPV66<25[85H>)5(]$F+ MOX2D#HIL4B0NW<-J*\_&SMCXDV:K0GAZNJ'&-95VP9HA5);3]YH351X(C9>E M*Y#$<$D%XR-AIO2JI2"6W5_-F(TV*;@F+*^+%*2EU,CI#VT;6\,4VDNS8=X+ M66':Q"OWDP#]/!UV.7EI&E% O3E\K-OS[,F92Y'%U"/N%,T=8:\CF9'#4[7_ MV\;*33 C5]B"'#WV3.^J+=FH82[ACXMR5_/UD^#O;MV:PC1DLK.MZ$5E]O'VR#@8N M@FUF*((%X" C>A$F#G#>/F[7K<5GS(KO*=Q_ $QT G@VJ1T,F6(I:)E2*4BW;8@>+,L$AW3KUHA[.RES*7I,XJ/P'F*@8 M_47+73*1B*F@?T<.\YX8Z' _0AYO8&*%VM(WAM*O?;\Y>'PX*HS+P5IPJ'W\ M;4-D9T6RVH(O,&X&2L10& NW*CGGN4,3BZ.P8&!$N0E%T;SY,YZ XVCSM9/$ MG"3F)#$=B?FX3V*>/CX,#>PJI2#6W]"I_1&#&F'P1KH%X;%]P_[:6'$:48,9 M#;I06F7O/DG4[Q%_.4!_)8P#J>&\)F92J9#':,Z\QH15^/':+1VTT]($:)@ M#5\(H.$S44<[ 0_2_*QQ6&V4:U1'M%X9-]@X9I'K*;'%<4ORL\'%&OFWJ;JBM&M)N) MF$K<;8335Y%6JCKT]AD?DGEGE2/87W5%1<#^H_<8%E%;K"RA#ST,++\54ZEB M=#$3:@AZJG!8*@C$5D4U6*H$24&4(+PV6 MR4IYO()J^\'R5T%MIG=-=[&#?N930/> ^3UD'D3T2,4=)TX(%KD<==2F1('L9$FOLA MFJ#-@/6"%8"W%E[''!%!M: QJYB.! Y[*D(3T.< MPY8'GR7X_?+RTE,0LV*'9,M+^,_;JP=^!+H-J8=L*]T3>Z@GEO_= MR4',H7-D>J3@R4ACZ$I0X>T,Y-YUSP:D:BCV5U4B3+1%@C2$\.^C2+C@RWQ5 MLWJMT=8XC>_*9D!S812F%V\#FU")TN"5"D:O@VV_/OG[R)W,#T]B]&6ES M2];H)C(;\G7%/K$OZAXOZFB[Z(/8J%MB^!-('D^F#LN 07*[\$!E(F7PQ"0K M=U1+HT']@0]]8L/\(QY&U3"(+J/%QCUSH-(8*]-WC (%)Y'9[9*>]U(:5-(J M^S,X^'2XX?"//N1W"]9^61(@RW>^'5ANEQR8G?MH#N^D1&RWXYT+[T&AB27: M4Z M1.C/;Y48G&L>"]-E*L/($QP7G #E&&@[+9/LD1.H0P)Q([MWK (!GL^.O5.N MVW3'3X^THE.0./YN#M;Y')$S96-)QMT;KC+H=BL-,(DB=:S'+1P_PGG,PYOQ M4&+&Y=;-!Z?I':OG#WR^/[/S^V_9K-R\V&<)OM/HB SI J8R*]+&/)^=?'_V M)V](IV.']/&2]A-.X![B!#[./ANUQ4;M]V\UNN6%8.^&#/@$1[P5 _[JS__W M/,N2]\'Y_SO8,AP2/7$_UN@G*5JZ-%7DZ&]E7!D -H73<+,+=K,*HNL_@$H__?GST.?DG6>8'NY@6&$?\>@:MY5:?@ICYY M_!BO^6L.(\70Y=OD/=B)SYX]/GMZMP5U5>_G@>VYTR*_2;"'6,;]U86CB7KC M@(EF*D]/3D_5WCSG (; ( G--USZ$B+XO!7[/L1MZ M@(4UF;ZG;A/Y30[#V7Z<*;[4![JB[#=ZX'[3/F$;DO^[:^_)-I/B:(&L)C?( MDD8-(2)<&.2!+Y^//?-XO#\G_-X=#&$G8<6_:"2%A(Q%UMC0UPI#"CR57:K? MBD0XA,FW(X(8S! XN0$.F]B:BC@MXGK-A #(F\LQ(@T4FMR-O4'$C5QFDGPP MA17F EM&(4 \2BMM5G4A*)(%!2U+#%%6BBYTIB1QSUTI#Z1\#Z6/K$F#< 4> M129MK8CN_2S'GEX(;LP3(4E_CUP_/=>7_C1!MM_XWC"U43$7\2N8T M]E'N?1PIY<]-UA;7XQN&V]JDIF3_P5!QR9TOF_(*]/1G#^"U,OT%<%8,8@_9F,>SZLF#**:2,%(K)#QZ%M'J(?>1Q'PDP23Z;^G4;#OD53"@ MC*?M1N@P]&6G0C@^>K!Y)33#0#KX@:RE"5!K!VY4.*_C%,-N7!#1 M57^@<#4WU>(IJ+\SP/C[QUP/1H1-7,Y5F=QNDFLH*Y$VP^XGRX,_>VN@1J&\NCBQLJIQ82UU_UE[I@@Y9D%W.XES:E].IWM%AJ?SIZ5!YC%7*1\)F7KXLK? M1#$L^;8QSR;4Y.-,>ES2N3UG::(*=\?SP.<*+_"Q)>Z,/M;XS^XR_K:8S/@D M,!>LQ6W@D7MD_HP7OH7>^Q)[NLH#'DH41W*_%;7,/(6'?743I"CL+:B+/ M+)[#N4-LTAKFAGS$@ F(7@LZ\=S#')9>S;9;HI>9=1&JNQU8CS MF21%PE26("W6&ZPM]XREE)#S.>AO-VUEQ1-S4"DMD&>2Z386D<96AQF=-^&W MO5@G^;&'MC *#UFK"E0R63"#CW)"]!MZ(/EIO(P0DF&TM0/_2A<-$]>X$&P ME^-F5 (SBXA2C'[D5QB*BU?74W8X!++=YJ M9( ZI%X9\LQK&H(H"\/HA2L!)^@Z<7_?MM7"$;/,?> !.W,"S 8T;&$SA_W@G!8@4GPH@V#,M :. MD]"F8'9&*=?W6Y4>1F)0N4+#N],+ZCCZ=\KE M/9!D"=I&,;(@D"5E #H#$? PN-2L"MLG'"A8$SECJG9YY%CF&M"AL'[899RN MM\8V;9JBK("Z#-+UUBJU0YFEEQ_3)MTW:Q>M9/M_"OW[X>EFM5W_^_P%02P,$% @ $).>4!() BSA M"P YW4 ! !W:&0M,C R,# T,S N>'-D[5U?<^(X$G^_JOL..EYNKFH) M$)*936HR6X20'>I(R &YF7O:$K8 W1B)D>20W*>_EFP#QK:P"7,SS/EEP]C= MK>[^Z4]W2]:^_^UY[J$G(B3E[*K2.*E7$&$.=RF;7E5\6<72H;3RVX<__^G] M7ZK5S]>#'G*YX\\)4\@1!"OBHB55,S3BBP5FZ(X(03T/70OJ3@E"%R=O3]Z= MU1LGS5\OSIJH6@TE76,)G)PA(_+TI+%ZTPZENVT?EI'C?KEZ>GE M>1,]W*TH[T#-"=U-^BS=2^G,R!PCL);)2ZR4H&-?D5LNYC=D@GU/@;7LJX\] M([$2$CZ/A4>O*C.E%I>UVG*Y/-%/3KB80E/U9HTRJ3!S2$3/.&/^/)W!5:*F M7A:D!D15H"*".IOMN&K%M]G(>2UX&9$*,LE4Z&T-WD:$'F5?+*KKUV, 8:6" M9R'^W /J%:5T8Z3+9D38J'V^ZPV-I]=BM]4(R1L7%Q_ M(U_G@)UX1'?M&,'&:X7%E*A[/"=R@1VR:MC!CO+EDGC>C&#WQ.%STQ7K9\UZ MI.=RYA8AAZ$WQ7BQ8IE@.39FA2^ H7%1K3>JS<8&B[97IO*8-RE,+J'Q;B>) M/H*'NAM=ZI9'( KI'X^#KLW=1LLA2#9PMSF3W*.NUOD:>[I[ M#6>$*%E!%&S-0;=2)5+&)1/*J%$<^F^]CJIH)09^M_OWPWZO>],:=6[0=:O7 MNF]WT/!CIS,:OJ]M"]B6[]_J=R?DW!\(9*Q^/2%S".GL!<+BB1-T1AZH6H62EL M.)W5(?H';-8"X!\;,M";4,K?2F!LP'2P8)"4R0A,370["?6*1H>+.EQGW M7")DYZL/PR1G4)+":,?VK$AT,ASUVW__V._== ;#OZ+./QZ[HW^5^-J6PP=! M%E@8K75"IXB@\UO*8!Q2[*V!@[FU#R-&=.'?B;5R+QDVU&$932ZD&ZT@/D%A M.VC5T+J/2#-[F[:0::SL K8N,/3'DGSUP>2.CB83\";>6Z%KG":A6TM @8@2 MD$./R0>8;!U( PXQ-E>R;$ #S/73 XY16);#9LL5^>"](R/)>8TH>ZYZV/F[ MS)CR=0T(NARP-W"R'%#Y16/W" \%N ^RF8<_7X#77G2V"_'S0@^8>Z(R1[B5VH[E>=H@#N0%^7$D\1?$B"H!S ?@#1FK MMB N5:VI(&;"RP#/0FD'[FT2."U+CT4C#N%(7@E:/M &!.)6G\ #/ 7?F5W9 MZY7: VLT%="0[. SF1Z!+3?)B.\/. .(0^X;%'=DVQ=F([BK\F M9UD0A];R4*N<9@MNSIB*X("X9+XPT2+$+3?TB;J$N5GC,1>/'8[E=>RH QB\R^X9:GV%0"=>!2?][]G")2=FT"6#=X=F\"E)L^ M!ZXC[%% V%'RW[MR4&)IP[+E.-R'(;@1YC"WY7E\J?=:;[D(4L(>ES*):C%F M.[[-)+Z1^,V82<.[:@%-N(ARUJ"1$NRIQ)5"[JG!I];8=$&14UDI?YZBR9!12=GC\7=+C(6/I].)ED'SUCQV0%"A\ ME!CM+G>D%S1V8)!9LB@];L]LYG.JHEUM76JE;$I8VLD)&ZG]!$P]+9-9"3-+ M=4Q<"5F1 ]N[3FKO "?7$>T2D8.EE"/]_G6)92C"AFL3TLO$GLH>Z25Z$S16 M%HCRYIGI^"8)[.B=)=&+?=M2HK)_\IF.D)W8CM9Y$BWKP9 2O?Q94CI:\9=V M="R[RR42^T0@C@4W:!V(E3(<.0S)V'?>28=],/DR=^_]JTU+_ M1]^A,B 39*XRN<3"T;3V"T]JBV#1@0BA%HFHA )FYGZ7Y"_ &N.7F> M>Q%%0G[\JA;3V;:]&2H9B= 7;EQ5))TO/&BX]EVL N\7M2H.V ]HDX?'16T" M%N(=P)PX?::&,%B*:K@UOK;T?+4;%56:O;UN!>EFY"\(>][:\O>U[8M?PB?Q M"V+,]3#@!"X48HEK>JP7W 0W1/6X8Z0%/#*+2?^HKKE/H-E(5[L*NR[,2=-B MF\T3(L95U7*JC=-JX^V>BJ3?395'ETW.^X#QD.KLI\JA]-BZXRN/$H9%_VMU M4956HZG5*-)-TF\ RZE Q*!;/H^UF=F>]7JIC&9-DZF,->(I&3U)#!-S)U2> M&\1R*RV%*JYPQ!0HJ^^A>JVB&M'P C&$Q]*8IS-24NR-#Y_HBO+D@M#&R+[+G ;^8ZK ..?&"*NQUGA>$04 ((:2, M+-E)M67#II)S#KDX%B]K-7=8:+,B>#<./MB_JC@F="V.]+87^F**&?U/@ QS M[[&VJS_I@Q+!&2"3&$7>R$UM\T>NM;NP56 M>A)^FIW3-9L\(_,Q$9%/ MBC"DNB2XE?+2Y7-,V0_IDWT^Z-R>+5\IXS@[TT!G>5Y8)HMWF_171]I!1OAY MB)],V0J_: -&?"3PQ^!<;DO7LAQS2B P/3=UNC? %8N Y#!KSL%LOR8,4F U MT!461ER+W1;*8[$YY7Q'C^(Q]2 0NN>L[0L1-STWP[<--H*X7WVS6*/E_MN7 MP9;\B+= J=ME8725=8@F\-6K)!QYI!8[FJT/9D/2"C-C?[+Z%&ZU M[.:AM'B#PA(T#=:9[SZ<-BO#-]P?JXGO)4O(9EU<=9)"+-^I5[AD?)A.,5_X M$#! ;##D$[7$8FLMM1$[,3FFO++E4V:D_1!C9$@8?3'0$G> %>DS9FL5=48#^I_/(: 8+02&?I' 8-5Q((2 !=_0%(=SS="U-=QPB M573??^"UUP@XXHALXU3/5DFS /UQEB]W&3@BS^K:X\Z7O![99+!-.RJB^R'Z M!<2.04?69ZC@E^>;_(,+LPT2_E^+@CIF$&'IW^D#(G+4844>^PD1]M/S0[?JDJ%IV2-:-JKHT!SO7C%%ZOT):HU@;\0&T2&[\U] MY M=>QDKP^CC-KJ"&51HS%5&6]7>_/1'.CH""\.M7[-;,9IAEE7\SDE\#+X( MCL<&)^$^_!=02P,$% @ $).>4(&&B4#^"P QJ4 !0 !W:&0M,C R M,# T,S!?8V%L+GAM;.U=WV_B.A9^7VG_ARSW9?>!0H#.M-7T7E&@,Y5H0="Y M<]]&:6**=T+,VDDI^]?O<0@T*7'B!&AB6*E2VV";\YWOLWW\,U_^>)W9V@NB M#!/GNJ*?U2L:?YNN*QJL%,C"M__/[WOWWY1[7ZU\VHKUG$]&;(<363 M(L-%EK; [E1[)/.YX6CWB%)LV]H-Q=8STK3+LT]GGUMU_:QY<=EJ:M5J4-*- MP2 G<32_R,:9OOFD$Y1*G"NM56O6:XUZHZ[I]:M&X^J\J0WO-RGOP(0XC-K8X/3>&S3&/IPBYK*+QPK^/[C88 M3,-T/;9 MCU%AG5FDEF-)ZG)E%4[A+V;AVPPN0.!S]".1L<5>'#+.V0VIVB* M'(9?T-YAQ)9^>$P&F][:9+&KB@1E[FI_%S/3)LRCX)$7*)U0C%@7N0:V,UB< M7,K^;.P9U(&FFPT1'4\-BG8P5%A48*UIV*9G^TU7'VP++.2%[*45"#L!O;K( ML9"U>8I=_BW0#-?K6E7;% =_=P8/XT'_KMM^['6UFW:__=#I:>-OO=[C>-4. M@N4V,2/%V[P%)C3JY ""W\Q.#/;DM[70(3X;QAS:7/VRAFR7K9]4^9-J70^: MW-^"QS_;C(70V,83LOUN-?)AK0##AI3,$7670W"ZVW:LWG\\/.<^?$"NP-RD M+#\_-3\WFA<7#?US WI[7;_40[A"4FG3*$2#FNNO@S\CZMGNY8(4->;-9GYI M50S$K_-/*)EM.S?X,K(##D(M1"$XJF@> _/(G'^U85>T!<+/4]?_9$XQU&EW M>5UI%$/H #"!3YSG/H(08,0-&TR^,^3[0:BI7$#J)U2^21B7"T@T/./I4:H[X M, P"+/Z+!UDOALV'9VVW8U"ZA-[Z3\/VD( [J;QEY32)N6VV\T-5(C)MFR;Q M - (F0C /=D(&IZ4BIN0Y3@XSXQ0B8!U/;FQ_$H)$PU[HXFB8!L ]EQ!.B4P M*1'<#BF:&]CJO\9W*7 O+3LQ4!9ML."(!MCZ]M#0GUA>:Z%#]Y+F]_'PD?X1#'!?6 M*<]WCHLH8B*][Z?P\E4)606$J\0!?:%$A'./'=^ %,F\3U8^\@](Y+9JI-RA M!/_2[>1VPA/7@*1#L@6_S8+&.9:%5W8-(3ZXX>.H/[7A'G)!^0^[;\(U#ONS1%U+J("3ML'LM< M3OGJ9BQCX3JX'XRI@7.U#*WQD)()=A.T^Y9 0293C%=BNO$-X2V AZ85>@R?; M /R\H*".[XD 4&0=OJS0!UO-14%=8J;R2>6CF8^)#K-[3(GYF[4;(G#".,4+ MI#)9_R^EN&8LI]^4Z#0'T0J2$-_$I(S"_E2"-=CBY2+K)B6FG#9@ MFG:F.= MKGS*D.4E@=%$<&J,8L;(U_17Y FN^U8;6N&'D53'0ZD,,"6ZXQ$ <3RT#FVH8;H_L#OM>,R%+HWV7H-#7/RD,OQ8XO,) M.4HJL1XR=^G[@J]$B+^)=8-J

    MN;/Y2(+Y*.>=X2 M"I8&1QG,Y2.$X0PZ.NX3Q_+_"TBV_@VQ5W!#;U)C?I@O4TJ,>U.78-GD8[RK MQ Q)[D7_TY50BD=RMFA%Q-5O+QB0BJ;/,T73[?$W[;8_^%'(E?4?@:1\HUW7;3ZO5$4C)VGAO.,1N"'WF2"3&$\\<%& M%+29C!L.=>(%@V9NEM\9/[ZYF;AH0_OYDG1"6;Z $K8_A:CLW?ZT7;R7K8LJ M*/A7NHO:D:"\O8\DHP5=+-)%T&V;V/<=_&VC(,9JSWAG_5__N8!KF:PGH(+< M;E!BO!5&,9BLSCZ E_S%#0#)7^_CGUD3'>F2S'X".MG)%4JL&/FO=?)?Q,=' M S 42&H]XA.?@ XR %?BY-!7 SN\#QPX(.$Y87@E\-4%QJ+EW^1,46=I M$$DW! +Y7.Y%IFUXH==<2BLCE.A"2G0:ZK+O3W>=PL# MPVX)[1+OR9UX]EK=XD4589:H)R[UAGYQ;/1GAK\6@N1L:4%"$/B)BYWMLEP; M4T#Y1%+:Y5I9[QWX*$[LS6S0^?G;1: >!.\^\8-R"[L>W5))>H;RJ6)'3MY( MS@E>C6.5X!X3(]E6^,M*&H)WWXXI!APS?G[N%9-K4!5B7G*)Z0=:=S617;\ MBG1$ 83!I(NYJQR+A=[2(^J$$C.=@!IR."#C <&B7J7"+RO@&[O!N'O#0H^D MCV?@6.OMODPRFQO.LM_OW*/9$Z+%R0 MGDKMHTHQMQ\*_4=H[E'HO!GR#Z]*-D[BC">@GYQ.2-VL5(I&:A6]#2;AB&[@ M[!0["K1T@&\JG_B*#[H_RLTY]^+M_RP1WRAJ$^;Q>\4VZ_M=_I)46^[T4*O> MJNM:57LK"/X)E:7],RCM7T4<%]I,]G^EXF,&[Q,5NF8S,A;W(#J*#3O5WG#: M\M7F>-_'+L6D E'B/,O;RA*AO_B6!V*B=-%%$BO-8CH2):ZF39'E MWZB51F,DL=(TIB/).;=TR-YK_3YOB +\+?&9NC!=W^["U@5J4*+F%UEL3W;P M=Q#$+A)%2DP^>CU"%D(S_K?4W1Q[+CVJ4UT'+Q8_DHJ_N/XCD"MQ14'".Q@R MBFD/)2HDH$.AW>?-85]JW-PG&(']_C]02P,$% @ $).>4 #Q'G*2( M%P(" !0 !W:&0M,C R,# T,S!?9&5F+GAM;.U=6W/KN)%^WZK]#UKOPR95 MZV-+/O>:24J6Y!E7;$N1=#+)ODS!)"0AAR(U("G;^?4+@-2%) ""%XFMB:JF MQCH2 /;7'X#&I;OYPY]?ETYKC:E///?'B_:[ZXL6=BW/)N[\QXO0OT2^1^[7U M_NKF^JISW;ENM:^_=CI?/]RT1H_;DH],S!G)+^H0]_M7_K]G]M 6 ^SZXI\_ M7BR"8/7UZNKEY>7=ZS-UWGETSMJXOKG:E+Z(B_-?[6!;8;_PAZOHQ_VB1-,T MB=/O+ER]7XM=M49_("K)FVU=_?WR86 N\1)=[#_#)5U]\ M^>!9*! 4YT)N*4OP?UUNBEWRKR[;G@\=XUA)B?PW> M5OC'"Y\L5PZ71GRWH'B6U.,,^<_B(:R[S1%:L8>UOUQA)_#Y-[Q%_Y)_=7G= MCA_VWQC;RXL6_^G;^'[;6J8A7N"*E[T:O ;8]1UIOI'=Z*B?+& MK0OKI"M.SA,.*G4 ?8M-H.SCYX M/&T2=.<4BQY8 :&NM2;0C?$:NR%F7Z Y M$V@NK,Q;C_V9>_2M E##AIO ',VH8VSCY4H,+=;=^F1-;.S:5<:K6;N-($;4 M9=LV?X3I9(%X+RP/4M54$[@FX;./?PO9(!JLN66H@$O95&%<0G1$K0V^^..^ M.-L6V"Q^99/E55SF"CF.=#>4?NQF9\FW6A^$4O9J)E59@U3L,]\B>>ZE[2V9 MY2DIHJJ9^N45S5\N\?(9T[+"RMJH7=(%:Y!:X3.^W"JGI+R:E@[9'_ ,A4Y0 MO4,DVY%*S,H0ET2[<_=[7)++4WF7O_=,S,O9V-Y^2P+^@%WUUE[]5E]TDM:C MZ"1EYHI\3!6W^/G0KJ^OOURW+EN;AO8_(M=N1:VVRIT<")2\MWE60A:''SIY M\K%IP[R-YN^[BOQ\V3. MEM^*O^M/79H$PL;NIMUX&)> =\K>"#MB]V@X4R4$5MJK6-[ MGM)WM*+_:GENP):7 T<492MW/.5OL/K8>C?WUEL9\8$0,,),#K;SL_L,B4;]J7)'5?[[JLI/"0]$ M]5.*V-*//SBW\V>+'I6 #Y7GG(S\#7,0'4K<$0<_A9+UCKS(477^L:S.LW*# MT/48SXD?L'X0/*&E;*:1%SNJSC]5TWE:=A!ZYZX/E(TY/>L@-$P% M'Z9=BI%"^>JMVC9(L=5=.E]<5;PAI4]P5;( M']_NS*?\6E^B[&R1XRJ[](8X*WC#RIY2Q(.@)F_+9\^1:#KU^W'57'H/G)(: M2(<>O%H+Y,ZQXM!!7NRX&B^]OY4+#V*)T@LI#RZ)3OMXKV!@PO2]5G[QXQ)1 M<3^K @&"$!$-@:R K'$?!2B657/^(R]^W*NNBIM:%0@0A/ #6KIQ9]<>/^^5 M.J[Z*^YG4[*#T/IDB1SG-O29Y+YZ.DJ5.J[6*^Y<4[*#T/I@B>F\E M6/2\Y0JYZCZO*'U<%BIN61480+ Q66#'R2,A6>BXNB^]?Y6)#D+ED>>1<$\2 M02_^, QX)#U?,*L71=I*QZ6D]$[7! H,BD2DI'/OVOCU+U@],#+ECDM$Q6OA MC/1-GZ)%:[([XEO(^0=&5.V)HBYZ7 9*;Y#5 ( XI.PDNV/?R)9'RI+'I:#T MCEDI/R@&(G&A\])"_ MZ+HV_\.S+:V1@WE"N*"'*'TC[OQOR E5BW'#NG#X4G2[A&DQPP2-QJYE<1]^ M?XPMS(1F,_03#N1WVF95(,QXQJ3IH4#CZM[E^; \^O83]3)WKJI"$(([C?E( M"P^- 9$6D]B#UQ7;G^%-]LL$/ 4M1C4AQ((:ZE%E0-'5P6.M=$/%1T&:"0-5R*IFCM_P,C'8S)?!,/9-S;$ M.4X%2SEUX!@A'4TY(*#Q])/GV2_$2?L]9W^&8U9TVM_)"TW1?3S#;$*UH]SG M4_0:@5'/6;H*<,R)C@P= FCT[*T[GCS7TMIV15D(^0@,YB>Y\-#XB"34+JY@ M9",P/8N!I^('@IZ)0WC>>;:0C;S,(D MJ<#4QU/F?0#LBU_98G%WG+I]M<9&D#67EOLUP6VO#"FJ2!,:(-.:FQSS_-R M:P%;=10>=+D H?&HL+_Y)[/Y]8 M1@IS:0 1&IM[#6(U5.G^!QP9V7 M2;!Y[VK/V2?3\$2)LQ]=# M*Q(@E:N)LC2$O50Q:I10H#$TYF_%=;&]>0MPU[+"9>CP>&"V42<64=D;DXHP MU@9%>#-!!8W"/1F%:P?/M$/Q@H=^KG%TRO+@^?QL93AC.WOUM56Q5F L*@H- MRJ(0H3&=A6N\&(2QJ2K&EPP%-$H>B2OD$:D-L:^:+;/%('@N%:,CBP$:&5D\ M;%0[(4]J->(I0)F*@X"2YS#@!YM3CQ^9L&T@4QP399Y#85V-PWA52[5Q6 XY MM.Z2=\13TNT-RDM?2IY8*3!!3%(S0ORX MG#/8G#/8G#/8G#/8G#/8G#/8G#/8',XP9"X)SAELX&2P<1SOA2_"[CS:]\+G M8!8ZV0P(.4[2Q=J ,+ ,\]\4 P9M2Y2\XF&+WR$5N&UQP3#"5&2+-KKF4E>& M<9QOPJ8I(M@T1AF^NV&P8$+^:[^'A:C:5(!Q M+E^6I@V*4Z!(_[)4JG4^F9 @%QD;+_T MA[/(]\#P J.C3[D_F;(_CX.GZ:0UO&O=/_6&CX/SM<7YVN)\;7&^MCA?6YS( MM85/@SW-LW^EMTS6QL&0F4A=K8 +*.U?-3$!JZ9O5N'"1 MB,3QI5-.3MF&9YV\OI-2O0S!*>O_UX\WGSHWGS]WVI\Z[SL?VYT/U\>@!,]0 MZ 0'XT2*"H!9B 766H14F2:-@5$O2^5DW9>]_G#U,9L9D3/&:^R&6*I&9:DF M;\V,%:F4'MJ..D:S R-\R$TZMJ)*D]=@9?NY @H >LZN R?@.A /\;S7WV2+ MG8X#0%9V:!-9+.$= \>#H+F0OY!@T0O]P%MB.GB-?;MYUE+VGZV.&2K5$H2] MGJH?2H@L!@X:USW/#X8SGA-[?YJ?>(Z=,P1-*IZ.'X<)FM.AKC!E, :=>5\T MHPX>91,L(EY^PBZFR&'B=NTETS8'%Y UCM]QHEJ7&%:&8 K+46F*$!ZM:R:P M:V$.VV\K^4N5@C ]EB4J!04:(]L42'&?4:WU)>4@>+&58T4"!BPONVCJ/&;V M2T+@QFQ!(14?&AN;R,M(QKC7/'FNMQ%>G872K.KIN!J:X8%&H#ACV9Z8JXB+X) M112*23_H$T_'P_&@:H#9RQB(>!S&R"*MWOI"2'IOQ--K1- MN, M\HFE($%1]KAD5+K!42" 3DJ?.&&@]+U7ECXN,95.\948H%'S"^8O?<5V MEQ^CS?%3R)4PG&6V_44 M. M35\I*D9Z'@'@EZ/J8EV9LVMFIJ:QS0\,L>N+ M-6P)@ZUJ"$( UX&MM@KZB?2#R #5T1'T+4$WXGH-&%OR4^D-JNN9*)QY^W)Y M*?^&=2$$#]8P]@W10B/8Q(2)SOJ<[JQ=UQZ\8FH1'\?NYS=*8DN5NG]=?NZW;IL[9[(_K'WT)8W:\6/;6V?NXML\EO(M5OBT2WQ M[-8?XJ?_\>) (4S2S?F0SI%+_K69V)]0P) ,9SOF99%*12J>HY(IH,;M >%TU[1RL=WY"L';W-T;&I#3M7A[_?TQMI. M7<07@MCD=[.H\^8R6>(A8AB<> M<_B%>%W]?0\-QZ++*: JW,Q 3(TAZI)RX-[O=+7'(]]:G=N?X$>ME8F4PI M8 #\YKQO+RZ"K*;> MP W8VE;Y2OO"+32\),GM#9X MQ5;(WTPYG,W8SE2^!,DMW>2BHT*GW9"HQ=80.\;$@."D4SLG!Z%#>E3%(R;C MQ.C^+Q[]/O.H)5_.Y99N\DBJHLYSL1WX6,IH4/0)Q19K3SD8T@6:3 50PR!( MPVE([6/DSF4WOZG?&E@[*U\^:[)VWA.]2<4J.W/B5P#KW$PW2"@20A\U465R M"?:EW>ET8*PW3=0K%;XAC3^B5[(,ETJ=IWYO>HTHZ2 ;!:%DWYCDK7W1GQ-B]1VISYRGQ_ M32J!/$^5,F6*"/R5\(BMT-@7:([;I@,J407D77ZQP97 X^P[5%]U[4GF*ZY M&\+$R&E#"AW)F>0HW\H.#.J M"2$16C'RC& =.#O2&//K+=;>U)L@!]$WB6F2E(&0J\K<$DD '$^MFL0QVI(0 MTD654C'L!"]C[+.%GA6(##5LK(DS*YYAP@\VZY.1YPMU^P.'+(F+U"_F+=L8 MA/1/Q>:JLDB;C<'W5I@&;SQCR&\A6?%5_Q,.B@7R?)"%V4?MBN"=;+1[M.T*-JS>3L%DA4VZDCU%-.!$_15E,YFHV M@ I@OE8CRPLW,:H)Q/&S0)?RD+@PPY5<'WBQX053M'J@I"^&D MLL04IT$$8$3T/#!<.98]>=-VB?IT<."+6N63GW!PBV>>2 TG M,3Z2%5+YID#O$957ON7Q0IL0=$B*SN9/1W^55]']8KFY_,GL55V'N\WMX^>@ M1[%-@NU+I8K=Y'[,WN3R-GEF1M%L"VW:/95;7"[^O1AB>1>VTI)'B\=DTX#G M$)M; Q$41+"O"+I1%X5SZZK1^C;N4@FCJ9!8B4#*.&==80#1.GG=24="PS'H M-=&0N/K[\*'=^?BY^1O/>JB10CO R9 M6*>;3S%=J]\-T76K%?@G1,?;DF(#@)%!E-A<"= KMQ?H8J[*J;@. Q4)%= M-3AH[":!WB*?^),5Q<@>NOMK+U7&'_/J$#S12\^[.F"P&>UCWZ)$"#2<[4LN M(!FQFM<$!)_WTLSF@6O2S2=^70;[ LWG%,_YU>7M6X_]F7OTK9C'SZ?K3MKC M)VX^^GKWA-;S6\N*GW$RWC\[ (+(&)K6#4A;Y5A>$/$[-88TSE>E\ 62%P/D M!V2@_XW#@QQ+0UXHL3#[&<.43BB:L@!<@70]*:5Z&0( ABN63GO/E"K3M%-) M;O=)^9/NRWZ(3%MN@)QX["F/ *6EFDXT:Z1(I?1P.N].?A%;:M*7%56:?LU MF:ZM@ * 'H6!RCURS:W6X-FK(:3$VE=KIT_U-#;GM7*#5\L)1<8+W\<^#_Q& MKVKWDN(M@3C;+=$92H$]>+)((5/7WV7:E9HP22D0![L%:% ":7++R6-<@K%-,FUBPUDEO9O3;5_"V&K75K[MX"TOYM4]^9:G5E1EX<3_W)P MLZ)6 @1*=S(]H27[.*7(]9&(EM>:&9.*4,Q.7K=-T&6 Z_?-6\+#]>-UN],& ME,JV9BZE6.O?7$^PY;DVGS6XDR3;V2O/B)4E(2P=S#O=9INMA'. :-H7_H)5 MGV]PV1K3OO.HL)^1*14RJX-IC:M"6$(49\$<'X37T Y?7$SYVUL55[*IW^'$ MV!QJ)2$!W30URJO:3 D %[32#I51;,-9&0JK%J29+JKN(]G??Y-,"XH^!"*] M@F%JDI"'DZQX8F!NVY0)>F3%&C $"@_E0QH".?:F7@N-5R&U%LC'VW18:?F4 MTUF!N@!LB*YG;M\D;8[H]\Q7RI'W:0W*H3>+/GL.$]X6KS'2!7 ,EF]5KVIFKO.K-\$'SN)>>!CWDN!;E M56K.L<@,COQPN8Z5QJFZ(3V0)0FP_4#0.@-:?P;?]=$O#A^ M&$7=V<_\N%T_BZ!FIAE%#SK@\T <,!7NA@=4"+0I9^_0;+) 3,9A&/@!0R_"(;#SU MDK-\#_F+_3+^"!'5NZU+M@4AY+4XVR7!'GBRC?I@X@))MD&2E8(0GUIL I7" M #? \ Q3BNWX]7C\]>=^'/>N>_=+?C4(;V\JZ+\:LU=%IE"DK\5M8"].=5;H2<< MW+ML'8D?V":P^^R+.&L%T8JR$,9=&9X5<*!MG1)BFC #PPYI.Y:2!N#J[P;1 MN2(?\U,O.OSBGY\\EP]UIB7V_'G.Q6BE%B$,MG+4%D5ZX!/;A&SL4Y1,8L3? M=,M46H7GVEN'H'4 M-@M2L?A'3GQR+V1.3H;B.P: 7V*^\<)=2I$[%_542[XZ&H:PF#AMX7&YA'WC#J-K)RO%MB ,U**,5H#;I%\$=^C OX5L53=8\Z5=,;^(3M8O M8M=@*VKQ9-PBDIK(R_&8+=I4#-.^).QY.2FUI*4!.35H6$C'+DFA %BN2&33 M9U52EX?BP:#O9CG$ ')CJ(V:9 3OQW:G_;GY..4ZZ9("A,>@UAM"41;"F6!N M1]20!,@UHL<6-I@G(>="C(G__?8MQP9I:\!*[&ABA[1P(!*4.^5I:P"Q1P;= M3DM2;59)\:KGER%Q1I2_?*/KVCV/LJ;7A(9^SUL3N_U%\YYGPYH0IC"#KK5[ MV[,A+@ C)C7R,QL^O8UY@.#=E0=!MP X;;>M,>9O"&2;7IXNDO6T,79XT",/ MZ]D4/QX3BQA2@ ^+T$ !0 !W:&0M,C R,# T,S!?;&%B+GAM M;.5]>V_D.)+G_P?<=^#U+C#50+JKJGMN=[LQLXOTJ]M85Z77=DWM7N,PD"6F MD]M**8=2VL[Y],>'I)24I$11#X;Z@)DNVTE&Q"\R(O@*!O_T;V_;$+U@FI X M^O,W'[_[\ W"D1\')'K^\S?[Y,Q+?$*^^;=__9__XT__Z^SL/\_O;U$0^_LM MCE+D4^RE.$"O)-V@QWBW\R+T"5-*PA"=4Q(\8X1^_.Z?OOOG/W[X^-T/__+C M'W] 9V<9I7,O83WC" F2WW_WL?CD(J,:1S^A/[[_X?BI:?F)AKTMXT)-%O/_'_/#&FB &.$O'KG[_9I.GNI_?O7U]?OWM[ MHN%W,7UF-#[\\#YO_4W6G']*&MJ3*$F]R#^V/Z'_^H-H_?'''W]\+SXMFB9$ MU9"1_?C^/S_=/O@;O/7.2@P2\E,B_G@;^UXJOK=6'$C;@O]VEC<[XW\Z^_C] MV0\?OWM+@F^8]A#Z$XU#?(_72(C]4WK8X3]_DY#M+N32B+]M*%ZKI0@I?<_[ MOX_P,_]:.8/_\0Y_$/VYUOO"8??(-[RR_V-%M"/%5I9)Z%&H^_R_61X M'IE'82M0Y9Z=D4E+YYUOV4\9&$Z]@8A@GAED22'X+<51@#,;X+1CO](@Y-87 MTZK*7C=<(XSN'W_X(/3!_O#7RRQ@+*/@*DI)>KB)UC'="MM=/B4I]?PT)R.$ M%W1,NW74$4?">2QI%8Y'_5P&]F.+SK(6[_V8N>0N/0NS[TMT7]-XVPF!E"(V M[_/7\,G".G+D%=@4)_&>^H7E&QE+&6W'+ZP0G77D0PR.SKX\=,#RKSD3Y$4! MDFQ0B<^?I'2=C#;C*CBNO>1)L&5CW[/G[1C[CS^^QV&:Y'\YXW\Y^_ QBY'_ MD/WYKP\I^>XY?W M 2;2'-D/=2MD?RHB_R.C6P.M^!BHQ>F <#NK?P;0NK0B]AYI.;7)3>D_]AY- M,0T/]W@7T_K\L+GE# Q, Z]N:[5FP,U.)VUO"RP((TEYKL96*(26MT.*XV 6Z%:UMXV*,FR)4> ..'IQU;J10GA:YS6B*AH.@-# MU $\&7]K[8";HU;<_N-R07GJL"C7W=%M3 ZO:6[4-:)O3B-K3 M[HY4$2<[L>W=1'Y,65P5&XMBA7T1[Z.4'B[B0&^*;;W 6Z81[*JA-G8!;;=F MDOT7D8>5>F[F0HL@X#I+LG^X=N<'[4J4;<%;ZH-$*MFJF@(VD2;Y.UI MGAG-1?X#$AO@JVCJB)JQOV _KNAC_!JU*:/20I/:9C'9G,P2X6T0QDE M)\V'>D[TBZDJ02H-M=)R#F:J%G@H(Y74$2,_[:*)A_$EQ9[& M*&L? S9#%9#<\,J? 34UI8BVQB7&9DYM6EOB:;OAW2:.])OGBB: ;4H'*+>K M^N= ;4LKIJU]"8)(4)QZQ?R _3UEYOWQ^^='DIZD(VJ: +8Q':#J23I M3WY&G6)^KX:\X$LO]3*I&HX[-KGU M.D@8HQ=>BI]C>M"JHMX*O&DJ89UFCA5-0!NB6M(!\LHJ34!;G5K2GE8GB**2.LK(3QT<-S@,VZRSU@B\4:I MU2)CJ05H$U0*VC9.X.W1 M!'1MN=W0 [2]&@G>=^DM>"#!9($D&U3B,[5)LX44]<*;*,!O_X[U4?2T'7S# M54.KV6JU$6SSU,C:UR(E623H(D9XNL0$N9"_)HGOA?^%/:J_H]K0%+ AM@$L MDA 35 ))3>[RH= 34TMHZUY%=00)P>@.MAJ?4TB+_()?A:Y*#*?8#C_>.&^OLO7M2]P_^RD@K*_&G4$[+_= MY+>V=$9>5-$6/Y08+9"7HIP7$LS<>/C$>O#Y#_C(R.'@Z_N\-$QRCWW,I'D* M\6>\F/$VI BR9)$('L="!#V0#P,3/9^;1K;X[ M%R\=UA@G\;JV07182'(,A>)*=S3>89H>[A@:\3H96^/O^-$86XEH@U!C%^". M9@*X.F;JVP-V0R.Q[8<(27R!!'GYWES.0"RL70V/$X 6:/$1;302VA=,GV*' M>&69.NUE_8A(@'4XVNVOH #UM&D,MQJ[$# MX,!E)K>M41?4D2"_0(+!6;P^8RSD'-]-Z)H*=LC)(YJCWO,U3C;'N95V3P^$G8TRQP18U00 M=+ZI)1$V[N;!=[0JB-.M8,"N5!-PV#S?*?=\!]I$<>T/M\1[(B%)"4Z642"* M VSB,@N\8I8>6'.8.W8'[5%=%E+W.M"]@O^P,P;J\]Y%1L3F<'IRG13O& M#R( F%U;:.PP'RSO>C5@^4RQN[>?X#FJO[-01J'MV!\_]U+R78X<-LOHRXLEDZZ]O@#HD M?,#A=V!RXSV@?<36@^) X7AO!GFY",@/O20A:\)\P4MRV_]N%'=71;4)E<,/ MCXY\4,&HB'<'-\%N0A7D:P/QC$4<50V%XM!+^=E3K+46=S,86=8$BV22EG!I MV 5HH.P"N#R5:6H/>#9C)+:MN6?$\]2H@K[C65/P4DF!<6[C388Y[BZ8 M;2O,:C]AA,7U=!L(;:?>(X"K7G<"LHP.%L&S"*(Y!;@0/J2+<;6%I-\.Q6L%N" ZKB"-A@"[ HN01FP:'<3FG- M5F_O!326=H3=ND$^%7+%?B$T1]=LK[1?3#'H!]S9C:$; M[!_.PN'-91]C%]&UTT^)7K&7",WQ2PN^]GT>^,ZL@*/9/03LH"HI!]@O=+Y- M.-#^((A]0?YX)DGYK)U?#[B((^[P./+U?M3< [A?&<"M5 [7-P?L=R926Z>' M'&G+8N%EZN-L!+37!9\0KU^F[O(5IX[WV>9\@ZW;G;59WE(;\5Y6F?0?\EMI MRS2EY&F?BHV;-$9W'H@[+Y.I 3N^G'9'LQ,%(5;3XQWJEL ]M@%>K39OO1E@ M'VV2MD?AV>QD*7N^7)!=H)LDV>/ 6<'=$7$F$N<_?OCNPT>T\RAZD8@_?EA\ M^/ !)?+Y=F^?;F)*_HZ#!3]IP(@(A<@4_/Y/NP\S;\X>MF]\>N>T&7#7U0&K M3XO+;0 [K5;4/A/". +DKF,A5#NJPPMJ02 >J_3".X\$-]&%MR-L&:W1BKXU MO5W_&Z%V)"\K8?.O&MZ?$CS,>3J^%Y^A$R3,V.=A1O,%10EZP3+>[C1.>9+=: M/WIONGC8F0IPO[=42^UB>1<2@"."+9(>%[.+6"#K\%4XYNFI[SC3;T56*C^J M9)R=W5!WII[LNGI%/:'BI3&7.]?&>X'PPX(>7/,.-6#G;A!V@AUI-V>](V"6 M1[Z)8A,:>37D%YZ?[A,>Q4[.TZ9STT\DBBF3[B9B\0TGNCF\HAEP%]4!*SMH MO0U@]]2*.JIS\BRC.$J9="'/#\J9NQE?!U9@0$.&9L6J! %9;(X#5<[3$D< M7$5!MPF&$WV>>Z%([/92Q-8)"//#M;7X4:(844$/J4?3^:GH"3^3B&_)3* H MBVFJ$Q7II[8@TH&558\U&C7H!GR0,P7>I M0'3IR\LPC%]Y$+Z.Z66\?TK7^S"OFWJ\_MA2K;0C#>!>;J62RN9S%P* _=\. MA_7.:LX-K6.*62 <@BJT(7.)-ED6QJI"]%IUGYO0ZTWM_K/6;CYUK!!_-OR0$=6<#P MZ1&!9[Y\DJ@-RZ=E1FX'714=9NC+5;!M?BQ;S\R':T(/[;\C)G!;^N[@@*M^ M2Y2 W?KLZGBQHX.BJKUFZ+T*V&TN7.HR,S]623ZT,Z_T%X1<>O0XT*MN#>UN M5,>%MEE/X#[> ;[F4M4,U]==I!_FZA7(E?6$:H"SIBZ!-EQ0-_>8CW^;+*4; MFL_#GP=?2U;]&,P*>@+(\-;.)Z ;%\[ZUG/S6?V26=-T3KXZT-I1Y:>CWG6V M<=)AL<):))^ ;5\AMW29FYNVK(V;VL_)88=<&JJ]%L":> K4 %?#\H:76 AL MVQ^AU[<&[KHM,,M>JVD*V&';)+:VVM7GA]7MS>7R\>H2/3RR?SY=?7Y\0*MK M=//Y8O7IRN6U_A<<[=DDN-E>%9BS\:M+:97;UGZ]C)),/M?H+]1;T=I'JYIHQZ%]W8A M ]_!K=#T]!3$OQZ4A))DM39T'E8LX25?KG^,X M$&GAF+X0'R<%7,F!J%&3< M&7B"KR;*V%5_;G2!+3CJB6UM\R,'A($77GA6*#<.U7Q M!EL62W2/,JG: 7GKH,MJ(%75!LZP34NK%-""11P\W*=XFG0K7CLL1>!290-VG.9NCL ,+YA(AY9!1"+J:MX-VVS)F!FC,E9C$WY2*X#K5,#]F ]HK(YQO&J)W&>UQ)D,&9^(C8V7>F&\@NBQH M$C-(#=N&E0; />\43+4B2?XI8/]2"&G]'@1.ZV]*P:HYWSK #JP,.0JZJZTR M 9CI @>3X3C_Z?&,APT=X&'(6C7E:-69"."@9H]EL-@'^RV@Z15TBY/D)[[S MDJ\-ZL]Y1>!>$ZHHR421,XL4K5%@+AX^@?>Z?&9O>*P:%P3QHE[^7G!>!^K< M2XBOT8RN+7 O;(18]D9E0\!>V2ROK<46KUL79&>:.O]0;>DF" MEK)" SI#3RJ\[ISRDH3[5%O^2-]Z9HY9@]GDFEG3&3EG7>(AW3.C[69R.SI0 ME8,&(R*V"$FC8GZH8D;O/GZ+WGU_LFTZ77CZBLGSADFRY!G)S_CS?ON$Z6I] M4CZG:2[1E0;P4&:EDG* ZT0 <-BSPV'K+SDWE+%#DA^_CG9:=7G,:4QKE'2D M%R_32R5^5DI0N9_M:%23Q533$G/=J* G*KM=SX6D;!1;S=4;S!44)>L@27EK(MW:D MC[^6:JF^P-Z)!.#X:XMDA!*$%ZM/=_=7OUQ]?KCYRY7S@H0BZ56A"9$V%E,6 M#2+YH*5_>*1>E##E\!>PHT#\%HH\LF7PW_LDY=K]C)F"]>751F,&W!7'5?)) M3OO@G []LB ^^625^2J)[MDTJ%+$F(CB**2S5\'N>L*AQ0E>?Z M]'-]IB7]>04_IP6G3G26HR\RG[+$IQX9*\-S 1Y=1U)KK2+ZD"P Q].QD/:H M0'X:0GD$7(D(V)8R^ @L91"V>ETG[35H9YR ^+L/@",$O-]O@)O$XPQFAL<) MW@)$(K39*Q1.M2KS!7U%-)M!YF"#\KJK>];AJF,HFF>8@1)"7"8ICJD>U9P& M9O)B:5=2/."SB<. K;ZO_K8GZ<%\O[JQ+_!@T$D%FKUI?4? :*;_"/L0S\\ MKB[^_9?5[>75_<,?T-5_?+EY_"^GEV\I9B)?8OGO372JE7LV8E_']-6CNE3" M[E2 NX>E6FJ7>+N0 .PRMDAZ7(05?-"[G..W;#A!9:;,<01;]"MGC#+.CNKW M3ZV?(H2)M(*R5MY_POR8DCBX MBH(F]QP>WKD7BHJZ7BI*].,HX)[(?Y0"H7 M-P$+$8SC'W_X( ($^\-?CVN\QW@9!(1S\L([CP0WT86W(ZD77N(UIE0\0LW? MHZ[OJ]A3 1HB>JJ%QPA+$HZ#1!#[>RZOV$<8YEONOP>QC??R'.28:.9:/'U=?!9D8HI:K!X7]"198;2P MZTR31_T]QNC(%7&V;/6',L8HYRS2@ 7O:6,O 4I320K6C[,U*XE&"=:V SN M/?8Q>>$)-\MGBK%BK[LWL5F$9ELEG4;HKI1F$ZBM@?6/UR0_Y"=14[1^M[R[ MN?B6N5.R#\63*,7#V-SQ:"$B\G(9787JZ759W7^OAVQ2A.R%"-5'$5 A@\O( M[4!?%2L[*UD9Q2'?=^1JU)D5N 6ZV*7("]MA<:L:1XG*YWL1 AKJ^RO'=*M/ M365^"W83,"-N^@G.9[QY@,J\BYSIZYBN,4GW=*QW8?OL!HZDMRR)S>-I8>@% M)WR$@[H5.$2H::$TSUACHA[CG<'?2[0Q0C/F'N%LX\VHFE,&G+X[A^-61)&O M#]H5.*GW!1Y@.JG I/Q(I2/@(-)-_N'O;RV0^ QNC8\Q%*&\M?DN5+T//ET4 M,%D?BMCX5(^-RRBX>L/4)PG.KO:LY/Z;1M7C< (>8494;SD>C< &14&@ .%FHY;6VOH+9 G)ZKI,QA07$B*,A)HH"GL-/34K"0'@,? ML([8:,R >_BX2N[V^O?OK+C8R(![W/,U>O.[6E8#V&.E!I>#(>H>PENA;'JV MC>5=Z6( *5Y&R8*^1JN&78&'O"X*J)7F:>T'.!QU$K]'-1K&1*Y9>*']8IY4 M?O](,[.8)C),HX;R7$H[E1H$L%FYLO$A7Y[,',6S2+XT"+'/#:+T$/]JKL/X M-3&O.*3J CS&F0#6U!D+O!SS'8VYXP7G MAR\)#FZB;(83/2_]E+ED2G";I5L1 F[_]LJI/?C;D0I@7^D!IL]T5PR%.5/T M=$#O.%\V"_X6%:S1D3?Z-><^3EDA@^'2@:*$DM8\>LD%65QHQBN8 3D=NL?< M_4B(*R\O/\;#Q**16 &/5F,J6'M -! ?P!%O5+@#'1$58J'3=]9%XS>0J$+B] M!MP33KY*4JS6UR3R6""+GB_B)$V8"BY)XO/+/=I\&_/NP-V_JR(J$Q_#OH## M0&<(/2Z+%8SX2'F)GU*1]2NJ$ I^PCT*CHYR4J;2A\ ?9.0$\N(6ZCKGBGS& M%DC Z'9C8*Z7 LSS_F>7VC]2]KXFW\S5.F',2PJ@TL+$.H?7([F.Z66\?TK7 M^W#I-P[:+5V ^Z8)X&KM4WU[P'YJ)+9]I=.,.%K'%.7D44[?58'3R1 _>7R8 M?1H)J4%X&A7KU1N/2QB]8PN.F ES<)CZ?Q.]X(C1/GRE),67\:MNJJ!L"#P4 MZ<%5,]/JK0"'G09A[3/",I)(T#P+&%%7:5LC@HN?$B9$XO-Z0^[\[6>/1'P3 M=!6Q)&SDESS($@[H6B_I@2L,N'G/(*6/*XX]%[P[I9OFE?X+[=207- M3S4I.@+V]&[R#_PL4U$/+CLR%,Q<.?XTFB@@Y^=V*L@N7;\XPB@=W(OI M@=BT#XGW1$+7A_BG"LDW%8ZUUXQUJ>PZNT"A5T!SB#CM-ZO@T"#^P&$AYU2J M10AGHC""&@J\5(O7I M%K<6H$NWO:.8UR_-%R'9%OXR"D19'[G'8:PO0V*S<_0N2FJ. ":49A4:.@$: M.&9DO%%^[L3GP[(:E=L-0T=:RM6!)76Y/HB%/N#M)^:SF3OO(*ZF4R_HOD*H M=9Y=7&E2@MDJH=QS5G&C$=JS M[],]BZS''0WS[9<.%&<7)3JKJV4/TI3!#JK@R[^^6 0XP%B GODX\3/^+4"YOB MQ\0Z,;JZ""YB\(V>9(A*%(B^75,L^-BL2$4R/&QEU!!K0NH.OW0AKZ05X M]M)!^!YWI00+&=@X$Q[4CFQ&.=;I<$ML6OQ)AM_UV8WY;*SW= Z^XW=7AMUR M!G @L QX?(%U,;(6#H1L\"]5,-@2Y51HT51R*+OID@SH7E&#P/E&$21!BKS MBR8F8$:**@7K66R*C*FH^J;(L2X,A$@CD>-;?I!U1PD3;,??;I*+,8T2V_H MCQ]&D,NAHK$#X*A@)K>M76?4D2"_0 4#E'-PE3@V+NQB]X07H\A4$')6#ITX MEVFU/K[Z="SKKUN*M74"[L9FH"L[!XT] #NRH>#]37J-5C1@1DT/Y>DAU>4 M.S+AQ=-5Q)7#_W_UMSUY\4(L2@?PN8S/HBW_8!D% MU3^46FIT/@XGX/%G1/66 ]4(; !'M#'16A>;%3+Q\3^7"G&Q^.8F9Y4MD4H< M%^@HC/R09U'5_U;JX";/!+:N<:YKRG7M9\6)F,[]7*'B!ZS7XH0O0O?1V1VF M) Y.+TQEKVN7OQVI'[&:B M(\4]S@4J -1&%8G!S=QY9M_39_D$G=0M 3LR,*755+5D2Q1*#TPK?_'"/6[) M3^I*8P9QN;-*ZF'5F #PJ-@=1Z\4&^X^'A]\Y?U[76.[7>%!7C+OQ!3F*FH\=7"\0.;WL=9(2CJB$AY2CZ9PU7". MGTD4\0%+JXP)'PS<[W8A%O$$TC!-Q49.?R?(8R1FC$N?A[I)37A0C/3"_YIZ\XS(L M??83Q<&7*,"TG%.JO%O>E0!0>[=71G'WO%-OZ'?1[<#TN+HHV"'&#Q4,4, M9JQI:@\T9AI#K=PIT34&/ ]HE]GZ+@FCG&W/% ^5%6[N9IMF/+ :!R917F74 MH;MF10S9XN,N#HG??L&TL0-PAVT'6_98?6O +FL@=,_:N'R=FM-NV%N=SH3/ MO80DO*X$3O*9'1N9'\AS1-;$]_C87-?)(WY+ST-]%G%/DL#=8 B%E1VE#SW MKC0(+.L](U4=:*@/_7R5U!O(C;TDVV> MU>F%Z(%)A&4N^/'M@QOV)X?C\#U)?DN8CKXP[Z6I1R*#6@]M?8"'(2/(Y3C3 MV %P(#&3V_H,@FLZ2J7!\[,'SDT8=H6?P^._LH!@C#^%5L7_++>1<4!R1%_(5WET9[&WM1\CE.V=R4ORV3 M/SM5THOY0&9+"[CA]U)1V36L" %VGGYX;-U+<%T@P3=[K:FTPBDQAS5&NE'6 MK&)1_@SFX:B)UO?DFWH CRL&<*NO-6F; XX1)E+;O[8$XMG4$X!MXV1+E_F9 M;>.HU]1^7H8[7%@NB,,:HR;![-1;\U/*NY#OSY93&YH'&I-^P/W6&'JM+'US M)\ >;"[[(&?>!?D%BO#)=3 )FX^0'4D,5?#-QS NO2?HSN,$>QS9@LDV%4= M!-:@YT0OH"+&)7Y*C9=9BGZ3Q M%M/6W%7!/:5&P4?L,;>-@9UZ#YOC@=?RV>*<75AIQF_.G8%ZLTV M"LCO.YKV W[3L3,,6\.-WGN37EF<#!AC5#X[+EA-YJ*Z4;=KWQD[J7*\[=1Q MYFXZW ##W\EFI E;- ;']2//@4C9)RDS=EI*E,@EF?:A[ FUH7%N&!NT,'3A ML!KTW_8D/;0LL4\: 8USS: JY9,K+0 O$S2"6M<)$N0X8K*OCE#C] 4E>(K<3QA@TO4)L>I P' 8<$.A_V%GX*;+(-:Y@?< M0=KO_'4D\GMPD99[@%THS-U)AKP6U^ EL 912)IQN*SS*"^#R:NO/_#7R=H6 M>/KFP&-"&]#*HD_3%K"?MXIL/0/,"//'") @#<=8V\:UIO8S,]?&T4K;>$8& M.^":Y<1B01Q;3@G892WCIP3_;<^&N:L7,;2V%2_6-@?NH&U J^6)U6T!NV>K MR/8%B'/"2%*&8ZNM>XH-[6=FK#'](- LW63SS$*\)I$ M1-8(?/%(R ]JISV:=ZJ!WUBF9"AER2BPKFH>![\]SX1AZR7./$IV2G6CCW( \JMHJIEA?I M1@-P4+&&TL-E*EPFCR,&U44\CK.GPUB$*U6_ MO-A3RE3QR']I/188@C#PT#*<\BH'#;VI @X_ X*S];Z"4^DNR0)EO!;ZLJOH M5R&(^W@%0(>Y"'Q%Q80.F:I>/2H>4?8J^O.E_D+'96N/*BOJ)]H%L];NLPE9 M9HI0!Z;FOK,(/X80AG"0@E4190"&DK'UL=]N/7K@ZB"@BXQ:UUV<41 P!V]4 M8W$.CM]!^''J*4+Q^ D448Y]._63HVYK*9+$>WZF^#D[),XJFAC-!$S[ H\ MG510*7!GTA%P'.@FOW5!N H7[@=Y&2$H86 :/614$U[((6>' _1T0,RY\3.; M;4!8$M1SD/G1K,]"XR4)]TS:E*O'SJ1 AQ-^B(:8H0]S7-? M(,%=#+D9?S!QQYG&CNN/IT(Y0:8Q'YNPC+%W&4Q"$) M\G=KRZDBJ[4JJ:WY7L%0M(&'K$%56 Y@@Q &',Z&Q6?KJF4I4$4,D3)9>8=Z MM5;G5O9[#EZ9J5T6B\GQV4OWE(6Q%8L9\A!'1*R:9CMU!.I6W<'G>=9FO8!G M5'<$86OU2Y2*$3IF(U ^NK/%\PL)^$D%B=8QW4J;W\F'5/F?TYBU+WD+']0B M(2 ?Z.)"Q&DSL"?2V*J._'.!_,@JF_A,& 9N281%0K>-9LJ=YQP.3I1@'!** MGG,/"Z= ; W]&TX*$4X+4;R3XQ]:%^->]F4E+$KXX3Y@$UK"'$+&D^_0XX:U M/[;A%W_W"6O#8D=67A%SJC&5\:<<:;PDB1D'/D46!8^#>,L"#]KB[1.;Y\N[ M'I);'(G(M?6B _+>V(*?49?5&H4,W\"*/\-]-88Q2'R!@N/DJ7(0%>*R,%#M M%735I*VU,=#(; :R6M!'U1+P"J5%8/LR-"6RXM7Z/O.&D4Q5-[$PZC WDU5. M(-I;S\ETAPNZ*O,=>\@QJ"0U#=YD(1#+^E%?V =B=91:9A>XOGVN\\]C@R[DQ?O!" MCQX4 [*J#5!#;(24SXY/&@"?#.OEM<\&RRBBQQA)FI-.;YT@&L)'+N+M#D>) MP3=5:SD/?U'!4WA-N=E\?$XDUFK M1K7D,28"V+7LL?1=#BW$XU?L'\%2N)?Z3CF3H73E4YN2.-4.B3N-E;3BL,1= M]$3"$ >GE^,U^FKL #Q+*;X]0IT%+[ MI]T'&O_SVA'7,;V,]T_I>A_F,>0(_/Y8<$(7Z2SH '=H:]54QO^N1 "[OST6 MZ]&L4MDDYXD4@QSZE?-%UY*QNP'?L8J %'\Q4T,O'?Y>XH=]T)A]I)@P/(P2 M#W:B@-T5F]:[5\6Y%PI%>"EB HE]!B'=B, ?4H^FL*"?XV<2B7LZ6@5 "X)? M*4GQ:KW6Y9AVI_*["(LG:ND>'PL2LP^4ITC&CY@+)+B>Q8SML$'D1ZF62):F MZ!] AM..H,1"QWJP(T4S!.)-$L6Q3[?>0/W>4@WY<62'KL"/*&V06/OYEI,5 M5U(YO03Y&X\^8UZ @6(_#0_\NEBU;F20!P.>)#*8;-JZ^8LKOQN(7 M$N\3UCFGQEQEVGS92778(58*CM.GT$ZI#B7$Z6931;7$S[CM+$K3%&A\- %8 MGORHV@&>X32*:VN+I?J>C.S8!SVM.\6C8(16O[, >>^]?O+X*VM>J%NTZ-K. MQ055$)4^6&XX!R=4RCN %S*ZJ""\0#_3.)GX1LFX4#F^;4X-@ ]^C>EO-]$= MC7VP3W>&,&;Q>8?%3+3H;UN*FAAU M!.X#YN"-GENXG4&QDP["CV3QM_KZ)P#,7HR\7767=YJKN5= &YFZZ#%',Z\* M/HJ)CSE],\@M&QFZH*)Y/<3I_93]=B]NTESR0HR\."*)(_9SB+/B>LMM3-.L M )Y61[H3YN'( X\10RNR=LEE$-J X\[@$'M<\,@%065)%JB01?AN69H%JL6U M136PC9G?\=BV+@6CV5N<)#^ALGZ#DCR#I81H 7S&Z3E>QQ3S"NSB,B%C*[;- MQ#:7XOBW!RF@T6H(!>69([9T@*>1](;5,Z?$6Z>8(D_C)@O^6RD,>277%:^3 M;0X)\;V05SK&:2(+(Y-(E"Z.>!ED45R9WTH7#X?L$[:HX-O849QFQ99Y=J=? M0LA[YUO!TR:C./LFB/0MNU*JEL"C=T&\"KOVITV SS_:Y+6.L.C]*;4;1P]GS$7VB+."1U9 M]7I/80Q[;=L_U+>>E=TV[A1JFL[&?H?;$ZQ9J]/"^V-CK?JH.W_D"5VJ0#3A>,5&X-7Z0EQ-O_9\ M$I+T\,E[(]O]]CRF-'YE$>#"V[%/TGI94DL2P/W21B&5\;!#?\"^; 7#>O#A M\U)>"%Y62,CY+5#&$14L4<[3V: [I5YR^$\%?%\#WVW R$KO] D8#21F&##: M%-(6,'3]9Q8P6F$,'C#R\G(3!8S62<.D6KG'+W'X(L*$U,LZXXB\%X^$HA0/ M?]/[&$YX/S$!<9@<6IU7G7L)21YV%'O!*OJ+1XFHR>.EVF"')#,41RMDAS@_"8F-$92QWNY#X NW6H\\D0I31!?.6 M1U4/ESCQ*=GQ8ZC5NJP'H2 C5;:2F%60,%.(/E T]Y]-L#"$,5C */'CLY!* MO)#1!$+4&%DK!6KF[IA-:'PL0H?#6$$2[_F9\M0F ?E>UN]L/,-M[@(]%A@ MKOA^0WO(OFXBMK5O5XAS;\[( SC:5>.^;3OC;>\V3[L^ 6Y@V[=S./XU%7T$ M&[_M=R]$\U2/(+Y,CD_.U9#K6P&US!98Q^=Y3IH 3UALDKC'-H0PKO(2@M&= M^%&>\7 M$[1$=^/B:DS8<_BE3?HBJZC5\Y6DF_R!V"7/2^5/-;")I]C8:BDV MU94&T.C32R6U1US-"0 >,>UPV+I&SDV^2IWS6R#!4>2M%CR=5[MRI)FLS*_; M!YQ/@!> FQ\V,>PZP^"@4T!;3*CWFUDHT(H_= 0H&#E^#642)5SR;1X*X5T4 M4>WR(MYN22JRL)MV>'1M@7MS(\2R^RH; O;79GE[U3]%);+N=V_J0-NV;9K: MS\Q8&S=JM(UG9+3#;&QL]BF>!O&>*L>UU+^76$V/P MX/$,B/PA^,?XD7J_Q&' 0!?K9<62VK@C4%?L#C[?LS+K!7P;JR,(Z[N=S%=3 MC0TOQ#79X\X)WV9-I$S\%NP:,U&\<(&2E!\2\E4C-^N07YQETS5!-J9H3=DZ M:D,2^0=1WYV3923YZI)B+R1_QPEO21(4<,X!KQ:??< 9^9BF'O^74*8SGL3/ MUF73WKV=Z-O@T23C@S)&_*GLQ_LERGCQK;J,V_2[=!-J(;>S7::%M*J%_LD< M+<'V'$=X3=)[S"T/!V:!MJ'3+()L&^C3 *OK,9O@V@I@O,#J%8]F\-_2DM$_ M2:&XT3_Q9 0I&WHZE"*GJ_@WFL+*L2]C@G(N0*+>J-CK7SXSG)@&##L+=HQ3-F'E,XLPWUQT6%-X M_Y20@'CTL**\8DEZ^(3331SP4LI)BO&#Q^O,/J2Q_]OYX;1QWJRQ[O"P+("[ M]!@*K=0O'I ^X& R"DSK*B8%?;YDE!R0E ?EG!:(B\1G5D(H/G%2=LO;Z[96 MI]F< J5>21-"#"S!;MMH;NTTFSC5!%H=>50]9A%+&@7O'QWJ,<#])O3(T%U[ M[BUADS)\3,E@L[2=%QUN;R]6-/OLSJ-IQ-2T(;O;NT]X^\1^/OEP]9HUN8F8 M2EEHTZAS3'[ X\7HJJY>YAV)&> H-3YF^VO"@D$I/RN3C4]K\@]+LBU0)IOJ M\P4J!$2YA(/MI3YL/$9O=:RZ<\=6;J&7'#>*5VNQ_%)LN73I"]17K520;[ : M=P2^S]H=1\]JL?R$2O LEWO*"[[ZG+-H(F8$M;S@8B-6; DHJ+#/O3"45/"1 MSK0;L=-I5')")59\"Q8)9J7]6+1:(\'0Z:VBE)*G/3?"3UZ '^-J&+[PDDVY M37+GD4 3^6UI 8U"@ZBH=BFI.R' (WT_/#VN+Q44$6?+CWIJH_,"<=ZHPAQQ M[HXNXCI1E%!!4%$!T]0^(BG:R*/@P>8K?%]#Z803>@ :1)'M.'@GZV>M@CJ]IC(Y\M68,>.S%;SL<)2[O8UV2 M%Q+@2/OB#B8>0KCT8B M5Q13L9=P2<(]6R^<'^2X+S82S-Y([D()N.?U4(_ZY61C,H"]N0^:(5Y#R;F* M#2[!=X$RS@N>/)#-EP7W!;HIWH5Z?(VS_; L <'Y%2V-_FY;#M -N@'W*U/@ M92=JZP/88XQ%MSY-'LPE;B&\T_P9IS?B5LHMFY2VE-C0M07N 8T0RV:O; C8 MUIOEM=[NP;P HKBH](X3_A8M4[G+F-\WN?-$W677]2]&@K_?8LJ][2?1SNSE\%>S&1N>/OR,91KZ@T/'6@ M$6HD->;G4P.2!GZN-0;2_ADUT=%#WX4BKJUCFM\-)W%0>BE9_%&*>^+-_#-Z M#( ZYY[V> V2QDOC!Y>FM*K*Y*F.)X_PQA.(&M6,+1=L%KT7.OX.G:% +FUM M!Y9AYL-?,7G>,"F6+VQJ_HSE@?1J?9+RE:W#+TGB,W?<4[GD;UG5#D8.P\,T-9I*%#L8?3CO5R'2Q@DW$J"B.XH7R;$$*69TPBK\QY?"LTP-OO*24 MZ4;TTYUM#4(8>'P93GGER-.?*N"8-" X6_\LB9"?IV6>6=\W%+,%\H+1U7J- M_;2(9V><$,\8%\*ALG2N*G0 T.M124&NM^PZS[OOA]LWU&V8JI>RRS7[]]%[ M4RR8K0D!#4K]E9-O_-E1 ;['UQ-4_^V\?$.$4Q9EQTRWW:?=F7.DI_(&7'V[ M3;/'A@1SQ+A/O]OFRIHXH3-N/!V/;@8+OS+(L]@N-<>[E@KGBJ=L\G=?FE92_T]V'Q MS)G>W90'I?)D1E(C:^Z1; K'EX1;F9W%DQ_O'LI,I@WR[KZ!@G-^Y,)K,(K7 M3CEWQ-AKP[WL,'VL=Z>LBYCN8F&:9:/-U,'_OE!9E]LJ4OAO>^;Z5R_L/VT5 M\11-@89U$X#U.E'U=H 7Y8WB]JD))8DB0=5]EG8-YJU!>3--\WF9Z0G0!E.] MG4$6=JO(PYGL+80LZ@=>Z)]/J,1&^J3UTRVV#6C%=76/(MMLJ ML_5D(2^SDQ7>XT0=&FT9WV6\]4A])=#8$+B9ZL%5'L0[:078,!N$[6>1J\(B M)5E7[UF.A2]NPS?ETY7%;;VEK#^G4X:J(72?TX*K/D)9;P79Y_3"]JPQDA\Y M_RK).GM#=GA\&;#\X(Y['@B'.S=UN/,9.MRYD<.=S\GAZL(.XG#GFG3Q0B3911D8B3*54U;6_CFJ(=8L\G3AK -LT'>GM;) M)B1'\TP<+70F05KU0^<+GDRJQJE7O0U0#VR$5)YP51H ]+AF.?O:G]OYU3B8 M*'[!T?[D9-,Z1^->I '>2ZI*W]"W NH=+;#RC E%$^"Y$$T2V]K5/=XQ4<4; MX/+RITAUS:QLVD2#<> )/!E11Q%A9' ]0L*@(^MQ(B&> #09:'5=@$:6+H 5 MP["R/?Q1N5GLO@-::3:,Y!.6((;M<4!?$QP&*,G@\OEQ+" [=^'BJ%$^4<4? MK(DC/BJ8'!UK^@!W8B/(RB-D50? ;FPFMW62GGRG\4C5^6ER#6;C@;*N+7#; M;818J9^H:@C85IOE'KT$V$,@:.7752V&='V.Z<^!ZG;)C&05[/N=%[M8V! MNVTSR+*_JEL"=M06@>UW]R398^E[MXXY%4R'HZGO[[?\CAT.Q*8/GTI3O,%1 M4ESH:AY9._0'[JZ=55$9<4T[ W;J[ABLAZ0CIVP#M,(KO_OH>%2&I@Y9O=EA M873E7<[&\-#2!7A$, %T!ZPWQN);5WK5'-;V:UOCPWY3(79Y:94Q!_% MIN*4_9XDOYT?'AG/AH..YA[ _=8 ;G7+2ML:2&V_TU.BC3AQQ&D[/^8X MPU VL?K+S66C33C="#O'D;_9>K2I8I1! M-Z#1L2OPEGVQ2A_ $QECT0=<9Q<,X&V3%:)UVRL[[38[*U<#;[;R:I]96;E& M]'&L'-8F&@CL4V90B>LSU\S^+_A9D^>G7TFZR?<)6A*JS/H"]_9.*JBF6QET M!.SWW>2WSU*2%T@Y&Y3S09P1*O;A7*=G3:&'Q[ATX]1AJM9%G*2K]<]Q'"39 MA;U;$C5G9[5T >[?)H"K([F^/6!O-A+;?A1+4EYB4I!'^054SL#UAOF8J.^8 MN!OVTW#>:E0$Z9&D(5ZM;Z* L$7VW@LUI;AT[8#Z8RNTO/"1LA% SVN7U7JL MX%1YR=,C72?EN$[0\7'Q'LNW-)(-V3W&5U%*TH.V2%=W"G.R7C-U:.VZN?M< M+-X013]?6%5\0

    RSSY^U62J\.R8%-KIJ* M%4!XX:*BPW!ZZLW[(LG"5?K M-?$UR\?VUH!#@ ',W-T;F@)U;1.)K6>0G#8JB*.,NJ/I(S2TX_JFL5O.T2/- MG'%6?CB244)ROM$AQI*NU=)-F1OQ)2(I#D1%F.1K3'];QTP?VGR(YM9 W*Z#B>2V)BAI(TD<%=3=9#+\[H VIBM 0CONB'Y)*/89/>U(?M( M:,C1@\E'[NJG0$=LC9"VQI:3) UISOQGNH]$UOWI$'Y,\!N M<@(A]Y#B Z#.<2J?]8X'I^1D)U1PUD;;ZJ?0;4@=9TL?0;:CH4ZEI24Y"Z\C M8'&R[??)>R/;_5;K&?7/ ?N&$DKN'94/@?J'6D9;J\JH.?214?!,[!XD:G:/ MVN>0W4,%I7"/\H=0W4,IH[4Y26HNW6,,/$Y+X>\P30]W# "O( [F@CO7423\9C@00743J^X+. 49!"JX?6PA1F/>=J M^\V%*@RZS='V!RSCD//(3']9-GT()2RFU$&C_SO/P[]E8C7FX%8: /?G4S!E MMSU^"M@[%4):7V[D%N;'/&_2U?I+@I=)@M5^:-H'J"=V@IQG1;5V )X;92Z_=9UJ3@OM MHP#3\,!'U[5DB4+.,YGVZ=3QX68'VV9[]XG(W;M^Y$=!3H@\=8E$R_\VAZ:)Q3F/0#&L\Z0Z^_A]?8"? LPUQV MZ\3C8G8A6? +2;(&O^#B>,XQ/O[L0>5>4XYA_/IZ3R.2[BEF\ZMK\L9_:MX7 M:.P W)/;P99=6-\:L.\:"&T]..6DQ0(A)^[85R?!RY<'ZXSX8*L#_MK(GN'C M#T#'Z_35H_K[$4UM@?J<$<1\%:!M"'SVWRZW_0BQ8P*+#30V^" 2K6.ZE561 M^/F,1_@35OP::RZ",-)-IH0"W+(%SN (8'ZG<04PRXDZKV24IW?O< MXFZB.QH_,V4VSPQ:N@"-4UT URK8:=L#GA\8B=VC>EM!G#_TF9-W7O5F*LR$ M1>>,_,3U!)@4<4@"_IJ9*&Q <**YO]'0%*B+F@ LR@AHV@%T22-Q^YAE3ACE ME)WI,F#_NGA 3$HT2SN].U+U!7M%)!L0@U[0A]4=H9QP"+U(8%JA ' MY?(LT.WMQ<3KT\D44L.*&"^Q=&7<4)F=RR7LU,I@7[?#92S% 4FO/9^$)#TT M/3:@:@@TRK6#JRQ43UH!G&@8"&MMAH(DRFDZO[U0A=C\-H"ZZ:S,LN$- $6[ MV9CF4-/"NG&Z+>_O$N*D5?SC\(5-3ZIX&S'QL.8\&I0OJ#KSO?^PI:'WE.([[VTZ8:YHAEPG],! M*_M;O0U@7].*:FN#.4'$*3I?097A-:Z?E UG9(KZM=-IJYF8XT"+BII!.ETU M.8/7X^'B*.!'X0S:DQ?]MEJO,1M9.*]5A#_%4;K1'A)TZ K4T6P4<'R[V*P? M\!."SC!L[5BPP$F**+=C+T6O&^)OD(2!6,W)GXJM'MS?GJ?H)@^,AZ68=#1>=9!D2=$MI#8KWG;(.B%@C8L)AR MB65@G/B"X(1:;(Z-@AW@Z#BX.@3!OA%RF 5:<9A\>/#X&T\/:>PWO?3>U!YH MT#2&6EZU:1L#7KRURVQKL)P>W]42%)UO*I30??:V[,='ZD6))_)Z&S<9C#I" MMV)C\!5S;NT%V:[-A>]EX*O_ M\G>-DGL<8+S%P75,+T(O29BYL&FW,"1]D5,IX;FA.H9&<6X-[U6KQ%3 MU(;L-#AFM]]YS:DYN$!;ZA9IQ0P0HI',#9R#*=*LQ1][QC?A/Y+3?)RRV ^F<#G.JM\.)CZ#L4 M&FG'+T,F+_LRSB[N=@\'^(C#^1WM 4$M+QZ_/*";SU8WL1NV0G^1^^:B/NKC MQHL,0H-A/\@!HPOTZ@YH2R?HP:43AI[;7.B7_$Q&Y#ZEC!.:RCF;MSU'5\!K M50&R,/+CE HPV/!T;@8+Y6 S;9(3_MN>^WJ1H M"G!Y8BJQ]9EK01<)PC#>S52@;92D#0 M.O/5QGONNK;S\E']37=EP_GXYE!Y/'5+=7O7?720^*7V,,:?WA_EN&4_L3_F M?\KZ_^O_ U!+ P04 " 0DYY0\MWN /,P "":@, % '=H9"TR,#(P M,#0S,%]P&UL[7U;<^,XFN7[1NQ_T.8\;'7$9*8DWRNZ9D*6[2K'."V- MK>R!$@.*,OF6D#(,YW#NX?/OSUW]]6 M?N\%H B&P6^?!E_ZGWH@<$,/!HO?/B719R=R(?ST[__VO__77__/Y\__=?EP MU_-"-UF!(.ZY"#@Q\'JO,%[V9N'SLQ/TO@&$H._W+A'T%J#7N_AR^N7LN#_X MEA$,5.X&[2E\I_/:*I!Q<7%U_I;]=)(UB5 M$!<[^/I?W^X>W258.9^W/A#!7R/ZP[O0=6+*FQ!'CYF"_.MSGNPS^='GP?#S MT>#+6^1]PM;K]?Z*0A\\@'F/5OO7^/T9_/8I@JMGG]2&_FR)P/RW3Z]+[S-A MH']\U"?9_^4J4TK^YRCPKH,8QN^WP3Q$*UKY3SU2_/>'VS4*UW'C)'H%OK\$ MCO?%#5=?29*OA#C\CVTO$)38]+ .)('IM, M628AFSH(_WH)8N@Z?ILP=PK6C'G]PV@RO\7=X@HTQ%I5H$$8Q^'J&8$E""+X M EH'7%FZ0>@?X]#]H#1GZ16W_$/4>Q /,, M0P@5:P.O"/7#1-L^@?@ M OCB//D UVOD8TF28?@F1'@&[L'X+HRB>L@5/Z##!K?!"^8F1#6Y+637TXK# M9ZRC=S('QGWH,VE+]R"NUU 91>G =06>:H%(\^FH\0/ 4D@4IDD56774>^:\ M;;7/!0*T/ZX#@U62#E2JT[9R3CTCT&H%XWP\Q -'#(,%P"-EW9&'4YP65AP4 MX"I$4X >EWBR5XN?4ADZD#PF3Q'X1X)->TU&@%KTE,LXE'G@%,]GZXJRV?>, MGR?-R.^[GRWEG]$\9ZJ/MJ(0@^9/]7$)"M0X,ZF/::< $T:.^F!8)1U*WWL% M\*K1WUO7N_Z!'>I]1_/(TP!O52D&C3V-&CB_1%TK^51 MZR5A X2\TC2.K?@'S@)7:$'/L=['^(]%B-X; )4L6"-FLIY$&$?T \;+<1+% MX0J@)NU2KEQS]D@:0!44J&_'Y %X8/5,!T36P\>6Q>@$_+DY$3Q1O$GU>.,XSQCVX^ K\.,I_\IG\Y'-_D+D+ M_4OVX[^OUQ1TD;53]>I$?S\].AL>G9\/!V?#X].+P7!XM%7W;16-4!&'@]S\ M"_BO!6&56&H:O__V::B9M+'O1/DY_>@-1B+^=M,;0Z4"+1PNI>"92^MV]:_" M%5[@,O@L)S272"E.RIQ*0N20">8 X67(76HZ)B2*)\;35T!3:F(^7*W"@&(> M?0.K)X!8S)<2&L>\)',5E,MALX_R2UG*+RVFG('[D8C=)13& 'WRR)\^>H!F+*'_[)+&O[1>G(YP^7N4+7[ M:W,)XMMZ0Y(4(HG)TV"OU/QGXB#E783)@#.N64T!_C!> MMGE7&#F'N4*Z K2S_F!X/#Q@WL30,M:.C&EQ,^0$$22U$#:YW:1V<2>%+J/O MF$/?T5[H2W=';J /[I.*V695$COHDD*5T71B"$T/8 ')WE40WSNKJJZQ*IE- M=$D@RR@[U=XQYON.;HAP-T -3)&/R9$]>A^''IM!;BZ;"%4'FO%[9DB3G#EO MMQZ&#N+/(I[@J8H?(%IP 0N@SO)+:11!F'. M9>L'6,VXG(91[/C_#SYSYSM5B8LH!QCEQ:'S*,:7L\C;C3G>"XNDZQ@AX#!X MV_ZU'4P)$>7<\/9<]M-;DK Q_G09!NQ%^VX2.SB20I7SI']SY1&X"?G>8+B8 M$3^F"IYVD]C!DQ2JG"?>[LI^1JP9,/MD]WA8EMX-# M980YE[R]D7U.Z.FU,\>-X0NXGL@^V4H]1ZG'*;W.%4V2F(3=)6L=]K23D\DF-I5QYNSR=E+V.0J. M ;E@ZM\&'GC[#\!NCCOIK.)0 EI.&V]C93^T97/B&QBYCO_?P$%LKSY64CO( M4T*7\Z??AR7W:=O4^P;_I&H"RDA9Q'>$\9T<('LJX'+R>%LP.LA+74KEZ-M* M:R.!(G@YA;R=E_U0.,*5]FC%?:=J_E+XO1U4B2'E]$AMIOSUZ^[]]>:WVJ5" M_6^9EWFG?= G=]K7Q>&_CR?WCY.[VZO1[/JJ=SFZ&]V/KWN/?UQ?SQX_=72A MO>5+3)/Y.C#5-$S]H!DWX-6R'N(M>*,:H00QDC?A=QJB@5>FN[D);Q2=;%HX M7$K!,Y?6MF["&T6D%"=E3B4AVG!.8EV2N@G(Y;/91WN@FO"V4\[#] MO E?-,LQ-LNI(?U[K8&:CZNK*[O-&1Q%$5[^"";\Q43F,L!*X.^N:& MWEAM<9[M<$I1OY/6. 5($,EB7P9:IR*HY=[5PFCM1$OR5 7^@\2-?'%\0 )2 MQV,'H7<8+/[F^ EK!2V5UU"1R/!=,:S71FRC=LIAK.]!7.U?)I/%*J4H ^U@ M*JA]A,GC?K__CL*2^U-U(JM$( &-$P_D8&FGKQY [_KM&001R!\W*!B2H06) MG%8)I"Y>3AB2@U6-C#[L58(TYU7.(4JHPP29PR$V+.^!$X $NEO%D_AWWD<2B#&EP\]BA#76(-DXP M?@]#[Q7ZNU?^=G]M!^5<-#9.!*ZRFJ?OU,^)E6GM4((\-$XXM8,500J/F,]BB@(>9.MYXT.4JEOOB ;K\)%".3Q1ZM MU$9KXQ96<9M64B?\3/8II09>&[>VI*<<'V&NH3;):+R[9=(N2&F7=\L6"GO? MQ5Q%ZYUBZQT;HY V5K-UX!_^#/4^#&I/4C=Y;=5&R5Q)UG1/F<6B$ *H5E;'"V=T'H>3&%,'>C=!F/G M&<8.RP>8D=H^/:@ M7'N\ !B!X^LWK6# CQSBD:NFZP2GX1VNP)SZ$+6'$*< MT3ZQU,1LX]QB"SKUJB71LA%8@B""+R#=3KX+([*)/)G/G#>V&XA**?8IJ@T# MV+C=43:L]%+&/I%(8NQTU^-?.B:+_S-&ST0>NJ%F+.4^LM*D9/Q.PIM?D2Q-#=K,6%X;-/Y,-G M]WXI?.(OGWZ&T]8&JFXX;2-:?OOAM(O-V\"XRQV%TS:)3C8M'"ZEX$G0JBMF M7UOAM$TB4HJ3BNUP.8CVQ59N%D[; .8EF6.=@ BQV4=YLW#:EE#.P_8SG+9Q ME#<;J/FX# ZG[?OA*UDDW83H*DR>XGGBER.""FZ8JI1A+N]\"BL.%!K#MM'] MH>CZ@5?$$T0M[%$?@"E ]&%0*><85F9[)-0 ;TLCR M 3Z&IZDG?D!TE\1+7 MZI^;_1FN:G8SV:H6*9PM^5$<@$INHRA14DB:H6BU"_W1MEI5!P=C2YX2!Z , M]@/=DKGLUH@(:$L^#X8)9$>"+"RV*Q-"2G($W=$H3ZV)MCPOJ'T62> MNIY*.B0,^>]Y/\[P']^N[V>/ODCEU_P*C*8]0O$4W_MAI# MM]&5 MNNQ76$>?FH:N1T"C%_P. H <']MAY*U@ (DA8_@"KM^>01 QC]2D,MNKH ;X M;>QU'O$(CL@U#&+@:, 432&5S>H0 [4QNMXZ?GFF?];:M93.7BG(06TK9)Y) M46+6R#=QW41RV*0T3A"UYZ:RX-KJ#TR20!X9*86>M8#[, ASF[!?*I+)6K3C MX(!%4AMMI[$V-07!HSN]V^ +5F'U(=Q,]BBE!DX; V9N.M-\UP@&";9&UMN& M070)YB$"ZY>^0'3]AL=M; L8..B=FEPI=EZ'7[1'G?LVDHTOGZQMD[7I2[S& MG#/C4C-2VR8I.8!V7FJ9HA #YLR?-PGLH5V J=.PFJ=Z>,9SO$W_V2#*JW(Y M]JBF'>AM1> T:5)=L(R,<"P5!8_P0=^F[B1_M2&_(WSI1-!E,%^9UAX%R,/+ ME=#568^F*<2N :Z@G\3,>[&,U/;J@03[Y-'Z[_N+Y_O/W;]4',TB#>[KO,^0$ M$;8=(37PZ+_\E&+O_R<1?3-9\#Q;-Q^S48M[M)2-[E(5ELMMT.)K3RU_Q48= M[\-$-CIV<.S6C6!_"K0]D]@9=91C*76Y?3 I\632V&V$_[ZFEM4D^\DZP6+R M6&4Q^3B;C/_CC\G=U?7#X__M7?_G]]O9?Q_,8I+]]IUX"XA!PLZ/!L-3 M4P*6RU C&3(LQ_710H89Q2>;%@Z74O#,I;6MP%%&$2G%2>6P+ -1>\B2UIEO M]#Z59F<(]G\8R_VT MS&08MD*+;I:M5.X<2)L0TM5/51GQFI)N,\ JY5X M#*#8E/N;LC&T5_T&T MV:FYFFX17:3R#<""[%&9Z6H4,8'D6)SF]@8E8QAE71NTE!NC$*,TUMS94BK3<4D9BUI*]]_VLPO9B'C MO/ JJRMQ_X^B4O#,FJ48IZ%V^ZPVK=+!+NE&1H.6910QL6*,>'8+X M988\6 M"("*Y4&SPCZ4J%HQ3DO1ZUK25O?SKSP4#Z W64 04374F(15%V2Y %LV3%L! M]0YF.M:&^G@E%:U\,AB>7)@[,5,0BN+L3,$X-KX/QO+52,,XUPM'4,AKG,RZ MZ>7JVZ+38(Z:.C:9B0=M>$^[#6\4>-=O +DP IG_^80:A+48[>!+'T2Q^[)< M:[$K38I6>@5?H <"+QH[T9(AS4*:#R(J,>;& 2S-W,<5!Y9O\32_FX]]$(GN MT7C=AN;\Z:;'FL MC6M(_)4IY6,)8N@2F-O\QV'9>;>. @ M9IQRF:S&]2NU [G41KN?HT\]88'Q,NC&#U\CR2[C1"D8\.CQC][-W>3'X\%T M#&M[R/<'%5DTO4]":C)%(9&V=_G^/0+>;;!^/7/DQECT,00B:.H%F=Q%, G= M>>"D#GTW!-NML&/9G?P,#!1 2+<1C%$;;)%8S<, F8KJZRV8OV/!L<#0 MEI_::F"G#N+6:!\S;X,7;/L0O?_ U0!7X2NKKRHG_*DE9>MT>LWH3(^"?G=@ M0$P["?!H_QQ&,)T+T%L+T8"A)GZFG\IJ9*FFUT($3C>:=%8^ LWOR*0DS)PW MP!H2I?+^5%T;!FMZ;\18CZ\=>ZQMG'E/"C;DY LP3H:=;;,UM$FG(0ZT3<=V M39+/2#?WMJ055LYJG+8:2D!&4Y)6:+HA)NBWC-%3/E.%"H/E5IZ/J" 1_*;[ M6(':@E\\$KM_(A@QY^XO>>TEGI-*:DBGL(XJMMEV:#H>'HL*\/Y\Z M[]33%3F>^I"XG?DCJDS:#IWN>6G:4ZVP+VU;19N04S3710E&")TGZ-,9KOSL M7K;$CZB^9L:Q,5:/_!JKL:.9<8+K;'W9T"9M=7V53XYJ&DX9)B$SW*@-QT9. M044;GP^.^N=Z==>28Z,JY$Y\?EJ(U(/[8;K5>!.BK)^GS#?!538W+5E3 M*&ZFCR.B&G;H^.A&TZ"V'7[]F^.!67@'5S#>;*W1-[B>JSM:Q^ ,\)O)[/@8L74-=ON+D%"_" &\$D(%8B M_R-Q-5X<'U!W)-*]N[B)D%^, J_X@ZV4#$%V\"7CE*NZ(MV732QYP;B18=*X MRN7#W2PHV38%*2T,'>^W$@6NCR?'+E]HU30//02%:O8[.@2)MADA.3YV:>CC^/GH\]M, _1*A6!(&:<7&[C^D75(;<)3N95O#:\A5"(%16_ MD^&S RXX+47-#F/6<8$N'J0Y$ MM ?.[SKG-F$=I++2%RQVT1\,CXYMD$X]W/MQ%>HB^BH))>2'48( O2&#LI!# M-+ Y7&5;CHZ_B<>:7YFYQ?^6B\@ZZ./_]#[W-I_"_]CZ6B^<][+O]=8?W,1O MC7I.X/7H-WOY1PT.U)KYW]/X\3YT)6(*([L,8#X7D FT^X]RJLGS_4:LL\SH42;;*W4A[ M^&WH5RJB= AZC>-RKU$LQ.#>8!T];ZMC%853XN30&D=1OL7SLA2%/<#"UGXK M7$A193Q$66PV--JJG;Q[$$LVX).JO8>T0#K6KXO\UUY "S6X0><5G_IDX;B] MLEJ W"*_ DV_Y/R^T_RVUP M0R IR0)D&R-9^76 MN"G X :953)_[9C0_P/&RW$2Q>$*(.%B6S*WCB8KJ)RH#ZXV>]I!)XY;UN;X$T0]OI5'FPGX::OCDKV3 OR@USG=_@T5GJ>603 MWD$N/P9,MF;E)\S2^8MR'@Z&0\V/N8F?/FZ&S8:-+G*%%,:YEPV96K=ZT*\Z&5\72O>[=HLUN%ES["&].%8L0]?CZ,(JBL_)50HQKGNH1?7NP^D- M\=O0A5P[*,# UV_&2_8;%0YZ>4D]7%0O+\O@SF(7N6@VP$RNY7KS3FU$K9V9 MWKB&+:*E<,U8"94=VV>/R5,$_I'@@JY?MN\("1ILA0ONBB#V^LN<.'% M%%9R/9=LBK41SMM9Z8UKKR):BI=H5%!U,+R:ZA:?>_)*-68LL?ZP1??XWB_Y MY_^RU\VS.H;B;*@U*TZCX_R.0_=[^O^2+O*"S,9T%VT17N$J7\<$'3K%[U=# MWTDHJ>LHABML/M:%X6(BJS4A =6 P.]MQ=)ZW=(^"@/\5S>UETI/HEI,T:A' M@^%1WQ[]M&(,:R+I3LGJ)@U6\P!@F):$A_U\7]:N*S1^R7]:&<380-N;6A: +M+X"7D*85M MBC'CZR"%6U4=)XBT2,J%<*7AL)>@NKZ6Z0V["KO77C0JD7.2[W(EM% M'4CO8,$MCHVTUU6KUR?PLQO7\A5O=S3":4,[9]ST4&KS)^4VS[GO<2!]P$>Y M^%'[NH>Y?4"[ESPT]@%[I$#'A>/9E?03V+@*<[]E4HSKE-0\8-I$[,-_4*=+=LK$#O0E^L\CEL. M4-?[)?NZX=W,!"V< /Z38L0C513ZT,LCE&T'+)O,JZS-[Y-:*9LH>G!Z?'%Q MUC\>G _/SOO*S_!6NBIL5P[7Y]XASPI/YMD+YKBVM&%5."7(932N\^F.C$WG MU= \G'XJ[VV&NNYL9)88D\.=R9S>4QB]0=;I/#.],;)H2%7%@*4$V5RJMZM_ M%:X[-B2T==76 3^Q,?V"$C7<6-5L7 8O_G9!7+[/\#0C(K9!'#<262(0^+P55)2+(9:%$ZB V-$6AE[@QV9\5'%NQL]BJ$V7,VF>>E?*(4+PE#?RO75G@ M'_U]1K:*B3^/,,=O=>JQ''^G0'H"? M[NXOX?,LO YB7*O*642-$HRA7(TU =LU,)LY)$B)9KR$8'[]!MPDAB_8#G.\ MUJJ>-@A2FRV&&J069:**_( E(:V&#RD$=0T8M@GU/8 Q\.AA>O0C1'_.0^16 MS_L$J2TFN@YR,S>4Q6WHQ@<7$2X+M++I.]UP_.,&BZ@BZ\#MC M&&X\F>=#XO"H80)/Z\IL@UN_-88>L84KV+!SUO3->8.K9,6DK_![\PCDU*M( MH1C'(9,( SZ)V[\_9!*%.+3/73LZ2KEC.'"+,QA#=S='9GRNN*BIB;?3.]^F>&=. 2(_UT79\@^-4^T'9*/ > 7HA[BB/X<;N[&.RG0PV:D0):P=[)!M] MG.G11QY%=NJ\D_$WBZ]';L!@XZ;_8 A%(J=]BJD+6F*IWDXHAP= 3GEQX;/P MT?$=]%XQ;2BE*5;Y?' ^U!PDKM$L00Y>2W-"?[<=#]JF<1RNGD$045/PR=Q. M:2VE0I 9L:?:B6W+1RJ*$0:?(!@L<$=#-X>!1X:N?/8[#2-(]XNO?;B" ?DU MTVFJ3F'V:*D#.V1R.Y/9A#4H^KS:[@$6T*X!W$^5>$#4BZGV"8N!L.3,[U]@V1T^7: =GQ9^T2/F+X'3]#W@5>. MK\]0#3N#RGA1-L)\PA'ON@[:&FJLP>8KGB5\>DQY"W\RSD;6U5@QCQV>SKN5]6;5I_4G56U&FVV$5IS SHSP0@#.TOD-([Y1B16'GO4,L$!RD$8 EHB MIW%RJ,N?@A($Z,V\6*HLFSL\IG/CK&T2'(X(!-2512 :0G7EPDV9>HAF__U M=O6,PI?T)42N#*3R6JR0^O@MN;S\S<%V#@ JK"ZXDN'DL%@HJJBU1^JI/,A. M'TH%=P"OUQ[@8AE/YM\C,(HB4,VY5!X+6:^/V\RH/5DLE$9MV)E"S@]<(4P+W@E")8DS&J>6?6UI\BT@\?*(:3N:O$-, M?B;C-%"3- 7VV;@[ONVHRY/?=9-50N]_7P&,Q(643_QW'U!B V^T"E&Q"IOO0% %9B'6V=U.66]G8BGY^*E,:U;#X-VTU7%LW>_#7D MWK?! U/H0X_,/:[).P#DX?GJZ/>LI$9R)L/$AD-E>.:3R'S$BIVXB'0X&)Y< MZ"%2F0XQDQR$VETIJG>JZ:#Y(QLT[WP7SP9NX^@Q>8J@!QURH8V]E)"$B)DWNPML*"_@2^B\P6!2!BUXI9N\96)#5. ^I$EL4@#=02#?P-SV!H0 D\.>*,Z[O)C..^_J@N!6UO#PXW(I [ MHI<3&D>B%!5\!DT>RRN78W=AX)&M>USLDQ/\.9GCJ@"/0)D$X%L8Q$OF:DPV MJ]$\2R_$&J$]-.YG.%=M]GJL@[/A( M2],1*&X7BQE *V()UNQ]*XGAW/,9K)BOBZ!U[/FC*0#.3H/!!I ["L,)BU8Z MP@WKH 4@"=#&N#?$5/E*=;W835^)O0P1"E_)4MAYQK^)=]]2JE.$9<)I#+TE M?QK3AI,*LV3/ 301%:N(#R J)>B=QG'5)*FB22^="$:/&([C38+ME0#K\4_9 M[)9)J1%LLYX-[D)&5R!R$:2X)O-M@U!+24F)7X35"S9*3JLQ4&TO1R"\RK;8RBQ4RJ U4>^2L3N?9 MPF-,039CM-'"M*P19F;7H5D54F'(@D^ MGV59M&6*3E\%47XOC#%CH%!'T10@E["UV%V+,U+9QKT*S$[/.8_VNDN7ZSO: M%KCBPUUG_2/V)MWZ [U7_(6>FW_BYQY=Y9[0Z?EPV#_'2M,64*M<21)XDCR% M#IVG] X('[-2&<9U(TT8*X\DS6VA?:'9G;#6!L@.;Q7TM)O5.!DU)UY.3%*& MZ'0>LJ=3)3S'VKR@63/.Q'DYS@0NMKAOI]N_;D(GB G+<"N+/H^MU.LTG(NOC] 7A@ M16M,3E^NX OT\(Q:<5OHHCS;3DNG^T/K#]!'(->?.)1MH12)8"=D-Y&6EQWS M&#KO$Y36YQN(EZ%'GC"-8@ >'1(P^C$.W3\OW\N)\V3?Z,)S MD%W#-^L8H2598A)I5SSVG2C*S,.)C<'3BHE M-$\&2IQ4;/;)0=2^4]#6]O!J%084\TCP?,=N0N.8EV2N:G]7"IM]E%_*4GYI M,>4\;)9L$VU&NZU!D#?HL](;)P =@[Z2<O?7H*>XVJH U MD]CQZ_< QA'9X\$S8.\F1'2 2\#;H13.^]-WJA(2$S 9_*D-!G?F(^,E),90[FF_EK:)IRH-!JZ M[0?PG"!WZ42;4]-=),P.73JO,=I0(JK(;S.PVOL$SEAP&[B"'G^=PB@BFS%2 MU>/S<1K*(5U,9.Z&U$5IMG0""69E\MG+=VWT9JZ_VMFCO1/<'>5G,D8LINW6 M\BW4:7BQ4SWJNH,K&(/-#8AQN'IV@O>[N_$$9;^;XC:;STI9 MG<5.L2@C[N(,JOID8;'3BIS:%+[#KJ M;\VX@YH@ZIKC_X^H$B/XE! PWQP/S,+B M>#=VHN5VFFCJ0(\AJ5IEV2FR]DS1Z52YG4 ;:8LJG.]5+;[+J>SB7@7D?H+A M[OL.3EKS&Q@X@0O&811'V06BWU$8L6,J\[/9)9)&J#/5G-FT;-X:CMT$HN.K M>PX*:+2!M<85;NL-!A6W];(">[C$'BWR8&[G[9A"=$^/F5S+#KR[!%Y"A%YB M%/I)&DQ_XS;.O9BG7E*Q=9SK#[XMHK*PR=X27G,W)CNZ-F< SVUQ5Z$*)1N8 MRWUKM^-,8%N)DXJYG1Q$[2?SAMV.,X!Y2>98TWDA-OLH;W0[;H GQ"?]PZ>< MA\T2SPO&N"?RO1!E,TX.W8WTM4QA[LVX>Q#?!GBA!^Y"W.?QES"5:8MXSP;G M?=W!-.H05.99'FRGH3,TS0,+Z&7D8)P,Y/D3<-\IY^2DVY03R*+%XO1(+(TI MF1ZAD+_?ASA)$./:X^\O!)Y1#4JT5T\MV,&L-[ KCR(+D/'?TL<,IB&BE#41 M5\NE6R&T?=BD@Y=KM)]7_ !PL<23@]$+0,X"W"=D_H]7$;M.2MD<8K-S36<2 M@NE2.X4;I\^6YE<=6L>L[G$/2KV-H@0O:9P(NG6TN)7=.+5U*!-%38JL9.,R M \CB&ZA.GYVTDU-41Q-Z,^P78A/U3M)/$+("18T'VOMT+S@CZW4CNS74L_) M\DHPJ^_,B)!UOE&+R"%3=XS<&+P/:+AP:HAIRDK-%2[K*+QS@?#<\W/J[4@HW:- MT=*(5JVDP7X<2(F?+?A'@@NZ?B'+$#4'TF'9@7138"\M\5#\1WX(0R16I32>138R84Q[$@Z*5 M']V8E=YX:GG\2+'+P6F)=]\.:*Z#7V7:0Q !AT:A##@H+9' &,\P 7G/EU3_ M 49_7KX+NGI.#N/EH-#=J\(TUW^OA$38Z7-R&$>Q*D\23)O>^5VK(P6K:"R.JS<:OOKUY2G;&OJW_X'4$L#!!0 ( !"3 MGE!EKWHSZUD! '>W#P 4 =VAD+3(P,C P-#,P>#$P<2YH=&WLO7ESXKK6 M-_K_K;K?P;?/\SZG=U5(>\*8WGOW6PQFGL%A^,B=]RMS&6I&X9/LXR1"3R9[_;)+!1+Z;Q>].:NJ4> M-DEM7H4;L;\8\A=-TB1!D;]I^C?+$K7RPP?\GDIJWP+6:CO3WZAK0:/3X M0TUHS549$@6S3^33OXFX#&)1GI(C,<"2$98;#")]CE0B- -DMA^724X&>SVA M?_X9.8B\B,2&_=NU(T, IO_^&#G.]/>O7P-@]V]-:_AK\P.:"16/D%2$H7YL M'M%50]NU7RP6M\N^I7O/T"3)_,(_]Q')MLV7MGK0>L%LVU*_.N524Q[!"8BH MANT 0[Y_"O6I.+L']U\1_>7_N&VJ+IV(#>6#EZ#/MT-S_DLUT' @IMLOQP*& M/3"M"7 0K?&\HA&2WYN7;3F/R8"^/$("=?D4 2AF[YW;YA85U9]_%'5.V,Y*A__^F !KJ!H1QYS^9LBI M\S=ZZR_T\T$;1;6G.EC]-DP#X@;J\C?N#5K^GZJB0,/[$S7(6 A6:,Z$:ZA. M ^-21'](341"!5B*)#;3$M7*-^+=VK1"9C-+4ND-F4K5K2/2V+\-54=3M%PT M!V]&2[^/A"U5!Q(C,92$,8JZBR;JT;&B"6KR0(^-[E)(YGKW!4S X%+)&%$+9&QJ/I)D[M?N,WH<;<.Q.A+Z<"VJP-O M$HFE:N]:8(":AO=SL@PG?6A),#:IC5/1M:%!)[_JJZ4B%#/#8\@VC2>HHBGE M")NM"$5Q5H'3>2N5+B^M3X+SWI*_B2SY^E16A_*\H<%1?WQ7D&.*H1]E^"?) MPE;8977:WLOSMNU"Y6"6BTPL!QEC/!'@*#/E+'W_( MBTWS#"Y_AWE:B5F=TZ9Y75M1 T6Y6T6B2J>JZV"3%7NS!\0B\Z!KE&)*7ER-9D,K MY?35M.@1BXGS5T2LY]3(NQ#+S4*C4^/%.ZU=%P1)EVH25T62E([%HQA5EZSF2K(1'):SC\-^TX>^7^6%_%)0UNVU"D>6W6P__HDL-5#:[L" M<[."QO )04TS:D( I=:X@U@->5"1"1X&4 %5$!H058Y@XVUD M87K1XCIK+,ODQ!FEA6*W4RN8[T>6EI8NM!?&HBEF%[,(,YS8.GA7LKP36%HC M"Q[09<$KL;RTRH])NIA-EN6Z4KPK/[)87TT73K3,[J)G]\AJ?!UK)ZL=90D0 M71P\CF !YA%I5'JF5E2^V]+/IZX%I4G:* SGB9JDI69MJ\\U2=8M+GX$"6GW8OJ1E#ZDK4?" MYM2"0*D:^Z.A#EF13>21:5%>BM 8-LI,U5HW/!OZEJ2BKU5NKR7FQ<'YWM2< M3LI-N6Q5UB0WCI243H\K&##Q##5?(<_JBV'#J-K%E:A.YG.6I\?,VMW)(06J MOP7#49U5"@W= GK>4."R"%?^6%NR!,N5_BPE%%8:Q]A*3[ZKJK/]$S V U M&6LHL7BX^!6?-]8:>H&I'(XV5V&=N,NOHN*$;$_@N-VVA^N%%,6CK5^4K@DT M4,4;K Z&N_&U^DQ4-E*)%KFB38GM*7,A3PTE#H]O@/@7/AKBK\.0M.=H0T.& M]I]_<.C_M^U%]=&8"6\KX#<.F/_[PU8G4QV'^+WO1MZ&"A(UD>V.R.W25G 4 MY; +_VW[K_ ^VJ9K>9^\_9/?&S)Y4]J1B?;E'H_)1$LT[W_@'%LQYPN3%EUY M1D,2*,!9(:&\Z0EZO+W]I"KX\T"%%N&-"![=H4KEBX>L_?#A/]NO#GN?>FC9 M?D)&O^5@MOR#QXGW,DAJ^]S];[MA*@=-:?[^%?XOV\_;E_PZH-1)PC%'\84L M>:D!C*&O)/"GLFJH$W>RT0/XFQ;>":D.D$Q4YZKB GVG4+ 2P[$8-#2[;5K: MP$3KMWGRWJ-"*XR%*AY%0[6UY*J%H+.GE!955:\A#$(_$&^9!IBKEFNG3/0Z M*K[I+V+/>*4M144-\(;8-S(VSYD?OL2;E8)#S&'^1P6];#G555EU_*$1BHI^ M];;$?R!Z_=[1\\_\]Z=?7(-_;>? MN8A/CN37 SJ_D+-H,D(RYW&6WY2A LQ9^!=A"6774>?HUP$BJO5!3)4LB[$[ M^4Y*:J!3$>BYX>A)D B9:O.6XZL0\E- ^ DL ZFIIJ!!BUUGEA=I7A2TC !) M=GT53+5/T%!3A9P5($W5X*NI2217ZVGM1MUBZ98*!+X>,E6HJ0+)3T_S2VJD MPL&%F$:HEV-N+)Y;BEG.*2@ZW]+%="!]IA/0/D&P$-_!PW=:M:#LF!\%Z<1= MCDFH22@(Q8QC]?F()4<+PRN#]"&-0A1_+(KWMTJ8]TG+V3WL]FU548&U:@*\ MV/@-2L:TO$[VD@,VW94S<[+-9]==P6V2F>;4J2V$6>", MFRW:GJ38CS^'^0_[)'L[R)^DM0_Q%\1?L8+P_QD_G#[P-X]N'A9F+=X'-R=0TO*,! MCSO8!W4BRL8YOB'JHLIGAO.B6J^QP;-&/AO4IXC[\-470#$V,Y_%UU$'S[]C0.CL_U/<'@GQ)VCNC:[2^77M^*:>#.+%/7T92] M;$EH;Z8H]52:HZED3B2Y.IWO%Y@NS24"M[?WPE4^->.OO=8)15&Q/@-Z#:A* MWDB!J>H ?1L^;]9BK5)]E1"*\QI@NY9=2;:O?;%/3OF+K[8LNQ-7QQ5!JLX( M6KB9!4>8D'.81SPPV:8$T*WDG!^7HX"<*&)KG+SKM=QV\/VZ9U;^W.E?!PI. MG>]ZC0(?W*5+R3O1U$E.'T>C=);3I]G@VX_!4>#(0-MDE7_R I_4X)G5P@59 M/L-KJ7)!BK3&\_PT?NVL?7D-'IC%/JW"!X-JCUJ6AS$Q-5X8@IU71Y7EM3/U M)ZCPX"SWV3J\.1IKDZ(=GXD14\WU8K74*B5>O?7VN3K\O6%P(G3T&A4NM'IU ME;99DT3#[$]2[4Z#*ES[DE]8A7^$I?Z^&KRD#UJMEAT=BJOUQ,X5G3HYE*X] MTO(I&CP0:WU:@5=R=Z/BI#(V-%?36D5NH'8'_6MGZ<]1X,%8[;/U-V@LYNYR MUEF(;FV0[-+Q:K6WN'8V_WS]_3$^./\^"KQ6:K3&)6N\%%=LFJS5LXZ)*Z9< M]YI?5('S'V2GOW2!3VIP=J!UEA.F.Q$F8E*H3G+Q9(VZ=M;^! T>E,4^K<)' M2K[(L+-!EP0-,CGMMV+D^"Y4X5>\W&?K\$0V6EZ*K*B0,#*U6VOZAE-I&Y*8CZ>$ZJ(W%Q4NUVFHP9<2WR\)Z5/V]2Z92%2C M1_:J%:]U!97,UI)I.*3(5O"-T.^72/0Y>XN7%(I ')'-YCJV%%0YR@LF6&PFZ7ZA9$LJ M^T60^'5EXL4BX)<4BE-K-EV;<)@34NE$ERK44O9P%5J*@8;B!>-YEY2*^76; M:XZ7689T8ZVNK*^U1*(22L7O <7="3%V[[0N*S'D@\".V[?AS,7SGZ/_[$J! M//'[!EE]9R8-R[PPU.O[/FG7MD( M0]Z_XH,JR=S+D/1TL%R"QTL=FE;5EC5EDWN'4TPJHMIQ!S^K3_>R$F M4RT-.WIO9 I%1F^.9#9BB"%BKNID_5-[!S7+1)TXJYJ.-!DB!E:T4SRM/:CL MP0E?7.#=,I WT)-#"]K;I)2D3/(Q7K7GBL'9Z=^'6P_.M7'GM9 MK@,MU*1I#IP%L+:)*KE\JSZ8CR>2UJ1Z(M-F*XM:,K!VP-DK_N2$O_)*;]N6 M@3Q2#6BM]MMMUKN3$]/1'CM(:9-&/E-WS)AM%@.[F_4BT7YBVM]AU4O 4#:+ M/!S*-M<8U2J:.EL6VGE-'MQI@]$BW\_R.ZQIQK4,I(4MB-IEU"7^:VNC ML7H[S8VRB88P*^=!.IYCU6GMNE7UMO'3L_X.:[[[S3-7E);IY5K6D$.YVL:I M]<&J%1^N$T*5JM&NJD;*IG;=QMPGNFL72&![N[_6J[3M02FB1@0PCLP'$]J-\<$M]A=4?RT@ M2WV.P]:==%.:;MD5,EN)K,!"K++KZ74O^*#PDOO7'BGX\+F]AFF^PUI4.3'/ MH"L7?V%YB=XDJWNW8IJ&;>JJ@C$NX/&HT+X/ P'9<>TVU/41!$I)EY%NS3OV M[K(D=>=:O!DBQ?ZXUN39IDD"9AK3JX7"W3 ?.,/$NQ;S"8IM DGGDNQ)L%PM M3OD(R4?HJ\=I"3H.M*H#O\DV%7%(2QJ,5GO"RG$:.4BJ]"AXD>ZK@>&K<")O(!*F_?;)WO&Y<+"I[HPH&6/ MU.DK)$X_Q6NCII*H:B"3O;-S%86=#@,I.0YF^5[BXLNX4'OV\%LAH?8'T9@$ M6(L$T%7Z4=%*=8+G;0<5$B_SB0Y,YV#=A;D]@9S*"&)NG)F:0I9?5F5E/6RS MFF?2U;5F=@+<6+KAQB(;"QDG>-MCU1FW=1 MB!7O]9[M06.=2Y=3=S'-C5:3M%@N:%TKL'D=[UL2(K0M#K%@ M]JEJ;E40>F2*;4KC>/UJ[@,H@@" I_ MA:GXV6"X;_IQ8/#W3UQL04UQ5E0%3/92O1>BH3HY4U>@97N[W*T1,/PH3]Z0 MMU%,.Y%/"W,SK;5+I@9S1JY+!>]$G[__\7BBF\C5.3/]FL!X.K3]-"X>((!) MDDY&+PYYL9WD,Q.@-K,K-G"1B6<0<+FU#IKE^ XR8&VOYU:VEN.UJL;'%Y9, ML85ZX&R% ,N 3\SF.>)"; /VJR;0X;YE@!'1A*@/!?U8'0S0JXSA!@.)RK1$ MUT:K#\69>;>J-ONE?C0>4*UQ!7D3%]MH/Q!;#U(H3HFM!TT_W/F]0Z0'?1TV MT%OV:M 9"JZNA%1 'QB:Q]U0P4U:(PO",GK-:.?J*+&\M,J/2;J839;ENE*\ M*P=6GCV<[;;VW+G3_2T^ M#B?[E='Q*(?CO02(2L_4BLIW6YJ;<>W$J%FJ#+C .<9!%R!!R.EX+X@\D"!, M+UI<9XUEF9PXH[10['9J!3.4(%<'CV/!DYIE*J[L5*TFM.:J?(^.!IH9T)&U M!@UW>T)FV(LZN2:L#L5(11GT"A-+%X.W_8)-X6/3\H%P9%Y?66N9[!S;Q MCYL5A_5!M5[.W7'(N!Q$ZO%B>UF=!M+Y.;[B>\Y3\ZR:^,AF,AU!=)_*99'FCS 3D@9P,Y M4[2XV+HB7A$ +BSQ@[#)?O::'Y?X/8LO]B S$81()CIC]+H\*%8#YPT$1.)? M\WH?E_BE7#=:+W+EB-ADER6[3J6 &KRKE(,I\8. AA=<>I&$ACR: $M[& S' MX^$>,T(0\BW<]3\AV"[:C-'I$S;J0ZRIJG8 M&ZE24@WX"D9HNE-$W:<9837,=F>D-;6T"23GV1:5!=)9\(C44)EU=*NE1K9H50XWP%31"$&RD-W/$Q32"67;+ M4B/3;Y$@R;**&>%B53-P[G>H$0*._Z?J/KSJ?">,36KC5'1M:-#)K_IJJ0C% M3&"ME$\_WWG)"OFO2I6WC,@P-Q52::&:9Y*:D5IW,UQ@E>VGI\I?M,[]JQ@T M7Y_*ZE">-S0XZH_O"G),,?3 *HT ,>@%RJ&^BD/Y02YJ+_(D(\(U50) *]0E M.^303RIJNKV.&F=:/+Z;^C7KVZ:[E7(\VX5",ZLERIPV2,'^%V'8BYQPO;]N M^AD'FWJ7FZD?YJ,W)VNRE>.YN!"Q9N/<76Q1)3\^9OY23O@87<5+I78OLB[D MHC%A8I%%/CHEI[G)AV\8O6SV[W]%_7L<:#U9$($6[9XE-3_LI(>6.QZY-(H>?KW%V[TLL*[7+> M03])M MH;)(!M;3"^.] 0@1!0_$_;*5XH9.)B-&U/FP2+FQ-)\.;( X!/&EPV+W@KCI M1!/UZ%C1!#5N9$:<8T^"@H'#VIKE5O3Y9[07, !5ZS=@6XZ6+-_[Z5G M)9I_ARVHPD1N&)D6[ C-45YPRFN-ZK4"*V$"%.'&:&8C-!^0]=P&0-EF(@;: M(DN)P"FHFJK(C73PRG($)@#Z$>OY3,"BOA@VC*I=7(GJ9#YG>7K,K-T/Y[B@ M^N^NH?I4PY58,.1Q"0Y%LD? @@CH=&E6CK5S'2W;4A/.8K2VG3W[9P*![5KP MSV:,WC/;]VQ_VW[&+WKFI6(S+5&M?"/>K4TK9#:S))7>D*E4W?JC-ZJVR=)4 M[#=ZY.4O3*MSM#3>ZS;S'+GK-4^S9$EK3B*@SDG5UES0D-BL62:90ZZ_&.=MZ##A\%F;[S!M> M*V\2QR1:+(V__]M"BL,F*G!!-,P),/[[M_>KK:XA>A!WZ[WH M-_J3P/]G-G_@#@$QLN#@WQ__:553Z*,]!<:K7N%_Q _^-DQK G3_FX4_F.C]+7QZFC '!,Y1Q &W?W[A(:!% .C_TR.+(>L06+_[IC/Z M^^&Z/"+W'CF])?&G_#H:;E<8O1G!ZS>U]Q5>0/QY;WK88X*6_XUJ8#6#J?]W MW[00Q'9]W.*%\,KH$/\AO?]M6WB8N*6CCWY_N)3W*_EHZ?RQ;]=FLQ)]4UR&0:,V<]56^UYUG-\C54$#1EW^[W]XFF3^WBW)%,,%,ZG$RWV.CS(Q:1!7 MHA)+ 4J*0SDJP2CHQV"<8R$%?OB+^#IJ/T_*>T+@R?>/S#QZ;.H__HB5?$M( M$\U6HB4T__G5]R<6N&$VA938R+?R0I-(5-*$T$GE$I6L0*2JY7*^V_S-0S\<:QO8(\0(CFG<_.]_*([\.WV;NB5H,LK&=X/<8^&SAWE[/XPM6!]( M2>J6BL/)$=8_%)M[+^\#61M:IFLH$=G43>OWEK.V/6+&?M0=YD?RED.O\CNF MH[>H9Y]9D70SX(Y:!' =$[_3EUS^?U^.KN@[+U&FVBC[:^.M"%)W:-2>D:/* MQ,;D;&!%\#KCG# -KT5J/Y.F[*+W0L<4?KAB8L*L"P)).08.793.3$R9Z>+ MP(>@//'X6/ITRX>V7R]*(L1JH#(T@CR/#WU(*1 MA06FZ GB9SG1*!+5BO#7CN4WRH)AF7ZJI M<3I%+Z38XY8)/KT83(J=C,C-];19'P\KZ<)"BN]:.IZ!LT6*K]P12G0PM>'O M[1_[C,_= ]0S,+W%WWSA6Y?>-P=&Z+Y]XKB&;TX: M8/%' L>SMPY6E#S? LG%TXNG%PXN4^>W*'A^;3K>>8@]BV;7XYRKDZ*<[3^9=C8;O@O6R SV*40V]F@(--SK\_5-2'#64T!5/O UTWG;ZY_/$Q MSD[=!19RT/15 TY-R_FQM0_+UKP"8NGU4"SF4F/9672GD1BV8\E3P;8F')J0 M$/-$O!($GU/]U0> %0:VGJ?#C3\:T M"&<$B=E6^A+^7BH!46\*L9WXD^KA-RY?/T&=CA2P6D%@0>.#]$/-&Y?@[_SN M1<7$%$MUW%&\)*CS]9@OPWYS-5@\,^TRL.01P5 W!![%LTK@*Z'_2PC -Z,_ M%(E?122^8B?&M,)5#-@JOK-B^Y:L_?D^7,L"AN_$/W#BE+8J"*.\G1'H94:* M]5;E2KV%MP/>P8ECK]B):S42E68>NVJA%Q<:,:$1$ZJ_=U%_3^PPXSQGU<;I MT41&U2&!!&4?6K^))]R\=U41@I<5C%_KOW7/@W.U\B0ISGI0@,W$.M8P>WQ\ M])P'1^+J$#P3/]-Y^^7M(H<9#Q?(H?EP$#7@4+4=9&HX^*K-/2 5Z+04Z=GM M(4D[C6:SF^M4BZ7%,PDR_D5[FZRKO"'?/IDMP1./QIHQS.JW=5 E@ M$_84RCC77B%4@U =FY!'7M3FK^^9S+-)CE$&"J70)"?UXRPCL>R D?@^-Y MSW. 0?\'Y*/D&#M7C^0FFF\?BR-)J--[[+SR3BMT6F^7&;EE%P?U!&^'_4YTCOQ5J6<2)'9-G0* M#%TWS,I^PLT^TWYZ^LMVB0^MA$>K['7Z0&NB1=UT$J5O>>X2*O,E+I&-CP9- M+7..V>W= Y>^L$(2Q;20+^3UY9U%\NX*ME8I4X$[_Z@O6YV4Q'"2D+6CW<1T M7%HOM;I$>M@YDO**)JF':%I-TFEN4"K0[UH=9AHA([R'$5RI]?G MB$W^Z=QV7)4=JBX/W81I$2:^O($8NY9J*ZJ,"8ITV3]]B_CU1]UG!Z^M-02& MNO8^_Q5(C)XS]?QMX[9Y2PB3J6ZNH.7/]1!31,6\_2O8BWP6-S[MBK[.T?KT M];W@K*]VT3]YV4BUXTR.8Y3ZBX1O MG":),IR8E@IT(H7>2+3!ZH9HNLA3)AB2/"J23SF@/H]?S'/>4 :/O&JUS(6Q M1YYB664<2IT72)"/&>5,F@69\LO(DS/QF3_C*!7.[^6&.'(TXC.LK@VU/(U4 MM6KH94CQ[+N*M5IANK+<>$+C(E12)>UB5AN^C&0MN 3V&PFV!5'_--9^;N:# M7<*IA::B3A&*X1+*+G:>T-=(RT#[KZL7LY=BHYJ)4*CWU.F]%>XG$T3CY2QH MI";BRJC7*@LP7IKFXR,VIY8T%B-I]D*P0!,@\ P>+_Q!T.OC,B=?H _[7C@ M$S3^^=&GN+"H3E@0/(!8*EGD"TR4FFEM<9$>#.+9J$,E7@8QBGDCP/ZZS$&V MDHED2VUD&H^#ONO(:I:[TUH:6>U/K42O::K3Q9T;1/_M_8=V*,^$2LO/[X* V'^-)"L2D.*-P M$@L96NHK<5X")!4'/ L %84/ WRF#!U.2:0+0G/NP,S0[M"96.)8>)',.6X_ MES!:0K.EF!PLQ.KY&LYNIA^VI**<5$A.35=;E9EH>9E@:HT5[I-]RSFY5T0! M7WD$;F]+RC"]#:G-EB)_R\>^QPD$/^%^EWO_2><^GEH(^C9ZTN(+U^$RZT A MT_NDBQ\NQ,48XIL*X%(> 6.(OC (-&7TS;U'^_;=I3=[:!>! MV0>&J3:1@A5%#ST5L-OX9[* IY.TQ0G%1=0=I<;SH9,82O3QM/6]R*Q72Y9( M$'YE6<*K.7M#3(%%S('N0N)_T-RH%Z2MARKG$BKGZR)\HY)\C;2#=\GD3&;6 M<^N:.FVM.WPQF^Q5$@C>]#/P;N?2GP#>4-6]SCWZ!/ ^W//%"NQ#MGNWHEO8 M:,C[C&"$[X@5S:4:PWB-I#M<<]P79F;27B!\L\_@&U.E:UJ:+[B);>3B?!3@<-!ZQ__!F2G_=$,!0B)_TWKS["*^H47^,9H4?\MJC)_%X-IWA M4V^V-Q)ON,!VB#CI]Z" E7U[N:,5*=>RT&#\@W=8UCO <>V]';=HD6E-DF,Y M3X)5*]DM64JFZFT\GD)-%]I/H?[48]OM1?_))P_XM=$X\>K:!/WX<-\+*BD_ M+N?RQ(L?#='_;\5\Z8#?8;@T\W"XEZJ4]6%2 S,-XI>)ZCB(S:".^,8R#:S+ M]!4!D5Y;$=XMDD#VTE;2P '^2:0'\N2^C_WMNH:K0W^=6#**I44##EW=3ZYL M1EK$3_QC[&^:H6\W#9R1ZAV2F.)#$A>1*_[(=Y("VG]=4 3LT1:3=B,1]D1 MJ3Z(.,E66Q*X>..NT*HNTO7\,!0!5RX"XF^4 "]CRX_#5C=-_OW4 +V?J;^WS9YM\.3P=@VQV;!I_,18 MMRU58T^&470_0F^3#O;MH%L/! $]]O-T8C)R!^C//Q/[C!OBB4EOG3'>AZ:U M^J $5*S5K-3F'7L2>$&MDTNRY)2T=HREUWHMHE>'SYUU+1W'\A5+Y>O1$F75LUH+WOXYI*<576N,Q, M@[D8E8VRZWYI<-3'?<\:,Y^_8L)QPR,PZ[4=7]8;7LH?W=ZZ55=)O=Y0RCTM MHDS[5<@769/\\'7[*IGRK[/_V7O[?W#"T,;)RT?= W5PS/WWG'XDX@W3\]E= MVS?2T5#\BI+.KD34UJW&[C9^E[["+U^HZ-48N@::J8EE$**:IS(,8,CX\!92 M)/@$-6YL;VXYLPE\GDA5CN?W;J.1/\%A'/+ Z"9> +7'X+I@X(;]B,"-Y]/9 M(ZCK.]'Q$RVFYUKYY2;.<%S^NB6ZT#ZT,#];\#3QG![+&[679@PW46V(Q2$E M]2?QCA/K' V$O)>\>?8"O%?36_B7W=!X4HS73]X:F-[VJZWC"#$FU/9C:DT9Y--?X.W&E:*K>CC><>@;!E(W= ML"1YPU&Q+PA@X6.W<2CL1LN'C]S99+GKXQY M/Y+;-ZB<,ZYA/$R;.GJ+XG[FU)%+&,\QB8Y>K'BA.S<\58K=N].ZE'Z/(2JJ M/=7!RC\0=7J\.E*WVT-LXV=[=HYMITA[^AC#B9V2# ?*$?@-] 5;VQF.. MQ6^9W:FR';2\*UC]:V*)O;_OSYB%U\^^Z!7^1_Q@@*Z?_;$[ .=-[K-N0WUP M\#^1+ FXOFJJ6FD)E=9;KT!]6E:>R;B'>P5'3GM^>]S0"UXQ&=NHR'MWT#[S?9)*)&"MC"A1+I2XH<2Z?V.8R*2 MXY;__J!_O$$2<;?L!QST.*3#SNU()41\24&BT6VV$BVAC SBAI!---+Y2C93 M;;317Z5JM9C_!-\DA4B%X "L%5$Q'8CS!8'E9?UE3&N!_HR43%/SCNIM(TPV M\+-#X]G=A\NC'L\7N!YXO<(+NLJ%>O5$KV59GZOXMI,CM42CE<_D M*XE**I\HY2M(=I036+)(#,]S,>Z14_X^PL/SZ1\/\LM42O=6(A1#_4BLHC\X/*;',<[LT1B:*9>)SY!.,) MCXB@;M_='+H(AP28KKO![!F=7\+FI*Z=_^@R,,#07Y&T:LNN=U42,)2$ ?25 MK=KF(/-9C$A_!48,*('O1_6__V'B?]O$_=B\;(CMZ/ NUSWWIDQ#\?/8<)L& MM%W=\9I4I]!/7?HB;,U<.U\S=9P0J#I>] @M%OJH;S[AE=9-V[4^BZ^9K\#7 M 27P_J@\)MT;%[$;&'ISHF^Z#E$&E@8=HJ':VM=@7/[:&9?%.066J=MH\6J6 M*4,%+Y<4HV,L&?LLCF6_ L<&C;+;X7AL>C^@D _#V,D7F-C5QDZ^3F Y7VWE MA,9^5)GG62X>_YRH,@XK>P,*0\JA6 S%8@C1#PM]EN 0Z)Y!Y96[L<- \I53 MTQL"L3>&T$8.!J?]]W5E@QW:KX>@?='17C#PALN_L#VRXKB*))H M>\>2-IKR:W N35X[YW+"6:(KEZ*.%IB_!I=Q7X-( $',[@J_!7M>8 MPO!E0Q([J#?SV4JB)3:$IL1&^3C[&3AOHK^!\V7V)&CZX@607G!$XI/8XGT/ M[#]-"?)\2FR.Y$,8I_@8X"2*A(S$]F.*%(\#*%&,S,=AGV9(2OGQ9^](_E/' MK?>+V]&Q6^;]SZ>_5B2%E03"2@(7J23P@O-*KR\W<,9>T-.E/>Y'2%2J+8'8 M#8_8C"_B#1!]WLV@^=829$_7&]L;6 N74Z^[ !=%UU>$?]4 OI,J@]9T4QR, MC-2)G[C8TZ8D\L/FFUK(?WF%?X!JV-N&@\V1+'US),O>9<=NRR?CTG"JX562 MFD!@X$8(+0=%WFA*(,Z[9>*& ,A/G/A%Z?8'O-]X.]A;HCV"!BYFY]5"Z"N?P42%J QD(ZA3-^>$O*N:&1]U VU$G1UK# MY101Y.&W4\O$EUCLEZRV500/8!'H 635V%[Y;&!!PG^=7\U>Q:!0!ROBZ<5! M=-2=D>D.1U[)/WQ)R-.-MXONU\??]NZ5_<-TNR5:(XC<]A,=X!'V 5X'!#O3 MM0C9+W)/^//V\RZ]^0';=B?3S6VZ0DM*)@#1!HL MC53#+V+EI7G:F"1XD5%GLCGQ<\K0*FR >-#]+7$1CLP\3:D)6&VNG8<'!,2D M^/W2$N,OTRX'Y7/W-)LW-_S2"+*N\# &ZA(J^VIMJYI]A73H?FV:\?YO#\SN M%XWR86U>3&ZO0.^3]X/QC\SR__U/G(O%_WXXC@>V^[X./31?+J%1%3C!$,4% M-C&K("&@N/(&^C:TYJH,$?_Z%PKB"I"#@5^[L[]"7#TQ,:PWQ2+Q1M,-X0M& MF]@(X:F%.L#(ERT,,E/5O9X]/PGHQ!!X+17$*4A6R=YO6+A8AL=/J,7$R[BT M[PW!1^Y("-$O#E&,(QV)3!WC:%-X%H'&<'$-/_P=LJ)M?',B5EAK#ZZX2"DF M@%>>?B/I35GU"HLO_ JFKH'4\4:*>[Z'9Q0 #0+D#! RP$^C+[V''[2R'=-" M/L2N40C.[PM.A '5 1AMT*NZ2"BJC6PT[/,C>P-:LE>9&!?8=1%L)M"R_R9" MN'Q?N!RJQWL9IEBJ[EV0AXQ0U_!J7<.MM/)%V($8W#3P;$Y\F5,HA;XUK# V M<" 8VO7[ @\A/1AYVAK/J'7'$091-=VYK)([>/?TVY-O81 M;XBJIH,1&GB(M>^+M8-0G+6KN74@GFX(7/!M!)%?YR'+/S/MW31D;R(4_@J& M4NL;(^F1N W6"MQ94V[.M[[4<$C_(__>O&+[Q[C(R+6*BVJZ? M6[@?5 W1]WW1YP7#37N;Z.#Y\,"0X08YH;<6@N3''RPL^IL;"PE\"Y(#AV%< MYYL#XOY6NRTB;O9M86"/"%P4&9G+NCIS566[:[&-3.^NGM_N\6T1%@+KFP/+ M3T:P<#:""_$=CKN,A7M\H3^\] :DJD*\?&^\;&UAQR2F8$4H*KY-TU#N=R? M!.^J>N=M\.V0GFF]:Q6BY_NB!X/#@=9$-7;&KI]T:1KV2)W:?DAQ L;XFM?M M/BGVHVQW.M75T"K^UNC1P<*7,18(V<$ MG&V6FP4!=LEQ/B".'V)S::(ZGN Z)PG*OV@8F6 J3A!%K9LI. UI4R#4WN7 5U?8:P= MI,'IH1?XC3&&0>7J?BXWDD=HVEL?3]G<@+T-1IK&T-S$)[T#+GZJ"!*. (E( MUR9^IJIW^72$BO^U,]J\6]>]:*:*))XZ051SMHG39WB*IPY<;,](>4V?.%FT M=X2%P4=:#L^O[/5[T%D$!\Y.GIA[VPF8)X]BT)NKU;?__WMWC\K^E3WA$:7P MB-*''5$*Q?T7%_=;X>TYTGYV/1H/LE&1[8 =)-0'&*HF$N=()F*CUKZW;>D2(>NE@;B;]O F^2](<@M&R_,0R]SF2 UB"OT0G=""$N<2(1-D12."5EXJ_5GM2:D?,/#1_4>T#8^EY_= ML7W /VR"O_/2B3"$O8VS(Z=(0J!^7Z!N?7O/ ?/3&1%,+74P\-+6D/WJ'][; MN?4#RYP0J9%J@,,,R,/DR/N3G!!]:[@#Q (X7K[9U!^:IK)S^41#Q1UXM[78 MF]-2WLE.PH!#3W,CY&Z8:9.SM,F6L[S4%'\GQ]NO"9'\?9'LIW$/#76@>LD! M>T=&]W-6D!?AG;B#1 LLB0:4H3KWH)$86M [PWEP6KG52.Q.5"^0PV?XM;%4 MPS']P*N,R(M/W&[/R9K8X+"13:!:2/YN#N5M/I@+PS,.[ 0A"UW(U,MOP=IQWO. 0VH9$4QAF!_BG_,(3VC7%U MG_SG&DCYNE@ ;G/ZD'C#@G6X.<(_Q!4G'*3^0[Q\7[S@\W7047?Z:F/G(<]C MH$)];U<(*4;D35NAW7SMC;H<;0^D0\D2&,2&8]J(7DUG?R/FPI,)PI9 M^0%G7!H)%W1"+1S3PH2\?1ICQW>)/$&SVZ%ZE[V@O=)'B6W9J1/5HBPXT.$F MI0/'=+ #@KC)*\&% TA^AHB#QH#_6'F3G@ %WISJ5#7FICZ'A(;0XY^+= W_ M;TNU-41^U]CH@5TM:C\D.O!KR.^GM^#7;[Y&6L:6+;4/E4T,8%/*_V;K?._7 MH=\6\E+]O=R$8;A()AP69",H,E+T@O[X+2N(:WUYA;W24(9>:0*&NB%HDHH3 M/W$GF]=X7QQTN'7U;Y[ BX\P?UO"GZBJ>\59/-'EU6(34MLZ0Q.O (N[R=;! M808OK\>[/?5F/R/5\_OD$:Z5YM/=,3?'5G=Q/#0$+]QW7SM-N4]\/:/'3>DS M'$'T]DITU2_GX24W/HV "]7V:HZ\(*-I^*>.3-]OQN3T<(:_/$3:/8">9&U3 M1MKGQLN^\WOWH*9[)=CV"Z9-+7,.O:1A"T>&;HXLEG^8"@N?333TB<5!7&K# M/5)[9XE/592[O0AU$R<+U=T=%0+.BM_ MGP5U@;C!T^G6ZGX N!+>$S]M5P[HMHDD&1;HMJILHGZ/0G%^KF[?AC,7/[NP M5 >I CPG$^^NG!!SGA98>-A#/&1[JL3?L-DFD, 1T =^!AZ"#KS,N@E+&:(/ MP/9ES4*UX?TI"$12@/="9<_FT<$"EXORJO;@<(!'#,7ULYS=J8*MKM-0O/'J M&2*N\V774VN[V3$[T!'^VMK^6MS@-VZ5T:;^(-ZK52W9G:#'#-G;$7,VD5]O M9!ZO'T'86\C\*262]ZT8KQ;JTS63'R[V^Q50YF4YUI=)"5(\);%Q1I'Z;"PN M,9 &49IF >55SW^N@/(W27H*LY["K*?+%V;V[NG,Y"N)2BJ?*.U?U=RR'8^0?Z M-.)]\_3L\% WQ9MO_7_W_[N; ]%\%POM10OQ-RZ&G6J)S9L-^2NI6R)121-- M,=G,I_.)1EYX2^GK%P^F6DD+E::0)M!?S6HIGTZTT(=DHH3 (!#-G""\O13W MP>O/-XP>W&.[/ZL??WZZ!D >)W*0_O*OF;U7C0I@2(:6@310.%)B^0$E\13Z M2,=I..@SD&'HP0:N_A,M66I SE63I3HD9QW&R=B:4(;UA41)]*.6PP28"+6^ MK#5C[&A)+0INIS]$+:,/6]Y5!E2[ YJ:H-)=Z+CY&.!*"XE^W&>R%IG%J17L M:Z 2Z8IS)E^-K'#+1WW"]D)ID'RSIC5=FNUD:Y(R*M8EYG&?=UE[AJR!*1"! M$(&E5<\A!9"06(E\V%*-M*))RXV7Q6*KJLA:;5A)+192]''+:@1F*^RDUQ;@ M,E5II7FM;:,^N<<#,P8 M$]5U*L<-)?Y(2RTQ&RELJBO,BC-6SR8:;M%=2/''+0M*M%G-4*FD )+K 3\8 M2C3KUB6*?-S4C)-Y9YX9D5JU6\F4)S-E.DTDD*!\W)0S$KT67:.SI%H0HD6C MN^S/ZJA7YG%39FQ,@=NL FVVR!AF1%UZ0(NM4!F213D?I@5AC7 MYY4U0O.1)9VX9E$R5A6!K(X62M20TNNIB)H>65-^D%ZU(GK1$"*+Y6A>9RPW MDD+(/[( (SN>'L_JV:I(%YE*O#5P"UJECIL^6G\Z+JR;6KM1%=M-:EW1HVR_ MK21PTT< *)1;BWCBKJ9H1<:9,OIZ[#8BJ-N MXZ:/IA5Q>N0TF^H4Q%FA6[*G2.7U;=6$T#S"I1,@4ITQ51KT>0E1K4!I/Q1*?%5&Q4J0[7),UVT;2. M(,M4;-MI]K2,F(J(\U(W4NZK)NKU"%SLP;B5(&3>O(PJJ.WHI&$G]PSSB.FB#3I)&2 I M9//Y@=-((*FO#R7F"#CDW*16$-GJ2,S*M&5DIXE,+(&:/A0[4I0'?&R M#=# MR8S$RE%2ZO,<*T5)1N:5F-RG9.KE3SR<[UG//)HOV32=Z'JA5LAV7^T6%TN' MFS-(&1]!>#>A:;!H?D>0?@$\MTNF^T1/1,J796$;5(MN 1D9 M1Q ^GV=K*X6<-;RF M6]GY@BU WQ;E[G?"?*>"W/O"V@5N#MU>Q]J^8N,=4YL-OMV^V:GP1HRYY>.G MKD';D;QDF)/PG$)ZZ9?F0\)] ^/@MS8:$#T7-]R%\ M*&H^3]30(>%?3_AWN8;Y6=ORX^;.'XLR7^":YM=*X&!3 LT;?_GO#_K'NU*% M(F]C)]GTQ639;<(\O9EP,F!?!I8\\C<]&&JS^[&+W(? N"0P H6+;>[>26B$ M0C/@O,$_(L2I-7^\*?N$//A@\;B)'&V/$4R7!#(D5(78)GX$B$UHDB:O2UQ> M(22N#!%4/)225R4E/\>"B+Z.47P2,+# POZ'Q7@@+]>SBO_D64(!X//9Y=3]$C8-L0);&>JAF?F%!16>">N M?^5LGPLN?:W9/A<\?G/FE[>_%MCIA]#^NK-]+E@9*&@?44F?K7E2FQH[8*-D M'J]4\)AMZS>\>:S7P2I!%_8$K6?W@E&] +O:<2ME0= M2 S.M<4Q3M1!-%&/CA5-4.-&9L0Y]L0QT3,*E-4)T.U_?T28'X1?9NW?'^K2 M^6VX$\5T-K__( PP0;-W[<@0@.EOS%$)0\'_"/?LE'!2P++P(?$[H+OP!V&C M!4!/H9ZWN>9#,$FU4BXG%"6WT#)[R\BRBH\E,#_^T QY@\;ZSZ]#2H1>2LBD M =&*'\.D%.US*167!K6URJWI2ZM]]JC'-T#*5%=EL%D M,)_$F3$^D,1Y.R8W',FZ;BZV15?_ MY[I$\G4C%(62'L41YH'&P;Z6'M11^J76])7U^&77=[7N8!6>C=G,S037\9NCUBK ITGN OIG6%V'9NF MI]FE6,S%&["2+].]+CZ*BJS#>/2&9KBSC,.0J:Z.J4*S[N.X2JW2W6IMM*Z+ M$,18=0055RLF$%"[)(9PI]>DY/]>8<5X5 2ILBR1N&I,*03LB2 MH0'P?@; LSQ993-TO:2GFR*0F1[9ZRG1M%A'/(E4/D4Q-TSL%$\&/(!3L^ 4 MJ(I7O=BP#RKGRE>XL?Y9OL$%+W3$5 I];YQ@N\FOCYN*^ 9.:5K*>:N+1NJ"$6CT>!7:@DNO$*0R(A@F>@- M'3LEJ4*6#EDZM$@NO1'Q#$^/2I5,="ZIM. NR3AI9B?3&"[_2V+C@Z78&YZ_ MRD22[85%^^SK-[NO@G<1=^$Z9%3P0IK?X(# I\PRQ..U3.K:CW %TPWUHM/X MQD5GY=_C.7/5*;X*POY'0^5, LU\-RJ ]&&7K#IB!0IS1PCD:XK!9%3 M:TPB!?IL,9_ =_W@,X4LTO/G'2D,^>_K\E^HQ3^0 0OS/-.)K.B+?T-?(%35YTN'+N,PNW?8"\TC3/ . MLT'#!.]@V I[IU$J.\X\5HZB;*[[I35K"G1QV(I7%YU4F4Y(E%<#D+IAF%-[ M?B%CAXP=IGE?>D/@3,YN#*,1*>O2;;*98.+#\I=*%08RGF"Z^6/XBXN5H =)WL PN,(_/EB ??/;KB,08Q'.<5%O$(V1U MIAJ)6J$MI"?(%O JOO%1\H:,AV?'OR'W/5+?WX#[/OJ8UA'VRS:7Q?[0'"6% MU7(6Z4^&&M^\\]@/EX9CV)LX]R5.A^,^3EWV55*!QYWJII@,SEMT5N'E7U>V MNQB@V7[,/D-09QLB^>O.]F-B]A]V+NRS]-59S'@%VA,."S(L#=L[+Q$HI KORE7AEE&'\&6K9BJV3V7U,54I]RA MRS5&HJH)S):XG!-Y$X\^O@(IN,[:8RUON?!D5>G0IPN"[ COK]()XJQ9QR MHK!J-;6B/JH/"N.HKG4\GO+R>V]([H7:]RJ<[VT\=6I:WH*:@YT:7A$6U(&# M#_28WIF>^PL]"3"T(,251T*WX(K<@@#--C0.SA)DBY'RNP66]S?1);:,MY5I MJZP-=^36V9"?0WX.@P(?9YF\B:'; M;JHS'#*U@NCRZF)>[-6RDWP=,S1W!D,'/$"040WO9G"_LI?91R,"> ;VS2Y ML#%20D_F2W@RH?X_WY'9,(=7,>@,01%9EMQRKRUEA6(V6;W36<@)_%"BO9I= MW T;/^\,4,A45\=4H1+^.*XB4X,L7S$,6VS7\DFV.IR-8WV/JSC,5;&3][!= M:X#@8I3JS;RJTMS:T70"[56M.MNX1$ M>S7->.J&IO'J_&VTQV6OF2+!1%#DB)<8%M]>P$LE5C?I7+*'7> MY9,A7UT=7X4[W!_*6)0;Z=D=:C818-+F$KH)!W=]C[&\(I/,2Z^,#*P/6'I) MFKNGF'%R?+CC'9K/U^@97J=]<$:V;,4T3FQ<:U*'+JH\G$Q6?#TA MT;QW909)W<3)\RZO#'DZY.G0-KE8"OQII@8JI/*UB"H6#62I=#-%,%L-,5-S MYS!U (,!)U+?SS<[OJ0D"I[ "4,$ A&OY0QN*SS+*P9N0(.9G*^C!3M/BDZ#$64L#, M39QZX2FTP(8(3N:^AP&!,.\U3(&_4FOBB;37DV(OK]: 6W9)AH2ZR2[4--W+ M@KK$>%7S*/Z&)^-A+"$4!V$:_!4:0:^1!V:"%.>C7I\E7;6Z2(JI>BZJ+[ \ M\.(0-S1__?=QA2GPUR"8PA3X8%H9>YNM1^1'K^6 =JP^%K045VY5YWTM,Y82 M>"RX"B\9N^&X\PR*D N_'!>&ROUCDM^/U=*\XD25$&7N@7N'R[.7A*J@:LJH7<4@_W$ MCS_D+7GL9,V#+X@IL(@Y?LG-N<&"#=5 M,?F1V*?HNV$BH;7I?%8=U(:BH"Q^_*'(&Y(\E@KR$"S^] FP>TT@01.QH8QI MMS MQ8;&.82KNHZ-AXID]5'*.?'N%*CFK$=""8SF?(1L@<4BF+#Y@.FKFKR< MF9E4BZS*F7PNUQ_:O1J:/IHZ/ ,VJFWC"Z6\>Z3NWQ0Z_U?D_#\=,@]V=.K\ M6/G!>F(>BJC+B+^8OW/>/U(WV9HG.MQ@2L)*05JN"VR_N!P^>'1#A$WL_T6# M]3_B;A!I$#_K_C<+B$>^_>K1C'[\(3#4*/H>:F%P+>2OH&7;GL%?DT8RU[DK M9@8"ETC"B%HB8U'U"O@K:"&_AS='Z<"VB00R,R83T[BHK[@Q.B3/F<';6=Y8 MJ@//]D@L57O7(N4-SOLY48:3/K0DRX@,2:I&:EU-\,E7NMB^2]X MN7\UU$MI7ITW>2&;Z7>H63:>7_'U"WF9;Z(?/\A%[46>9$2XIDH :(6Z9%^< M?IE$(D/KT*@*545=Y5=)2B]$ZL'T3S\8KB_R[_;H?99S-TORXZS=<6T!=L3& M7)?Z_:CV+$[?Q47Y8)1^*-D$@4DUFYKCBM5B= %CLYH4(1X9!5F_,S>@B'<]JU:G=C0O#OEER/M$@ MT^$ &S1^/.'0&O.1\OR4R#SH&J68DA=7H]G02CE]-2U^_I0.XB+/>7%?TEF[ M)I_LRD(;'YV,&U!EY-FFQ])YJ7%KU6ASE."FLVR%+SAJK9"0&*^4-1L+ZUA_ M41[\VH>- VK"/,6$C!-=ZU%0KY <.YV8Z>9R%!?KF DYS(0OK MR%=OU?APF M>35QF.0&'# VJ8U3T;6A02>_ZJNE(A0SPWUPY"N9"T02EI-I;!:55UFAV6SP M<[.IY3O:I?;[WT3!?'TJJT-YWM#@J#^^*\@QQ=#KGT#!8DR1.:V5%)KC(IVP M*BE&Z ^_4"SF?,A^:%"A7DFH,V&B]\5F@UQ=)LO@@W'ZH61+5N6H MI+2[ ZWMZ/5%3 5+KH8<69J*?KE8S*60>B(6TT_&\E2&BZ5)-[NL&'8Q-J&Z METEJ"#1*3Y",*S>4RCHV-4C.Z0V3S48M7E+J"*&QFWCT6+W5)P :9D1<_8YM M@&;[V?&%,\)NFE*.L-F*4!1G%3B=MU+I\M*J!W]K-V3$D!&O)\AP!B.R%799 M'7?R&8V^RZ:;A@\O&;) M<&6:^,K*;MQS30TQ3=Y(^2QS)%PX-Z.#QFQ-2>1L "A^G*/'5;"0&/\6D7CT MAN'#>T2^.^M][0#_.Y\?.9_W9."VTFZ5IH2)4UY6-%:4AUP"\QZ^:"3.WK#1 M+W'=Y .5WH .4 WDI4-@&>@U8=V-T"NX2O?\RHR"+=\)&[9+R+([<;V+?])P MH,KJT*F*62FUSTG^?8HEQ$X5 MZ%0'+;!$L@9-'+WCB-!)9"9S(0G2;;$YCM7X85NTYDQ=8N+^9:4D%WLD%ONTGBKD1P'$LM>\ZWGVHCDFDT-1=FT"$O25"3^<+W6YPJ5H, 1)W MUQW1V*^_*'C,>D2DY9A.G5HQ)"-4*P4YN1[39C]7EUCOTA*&I6_8HPE&(5^' M?'V]9LR5!S;.8FQ+6BV52B>5%ZIEIM#1836;37F,CY\V'V1%DU3 NM6'[#:\>N M/+H3UTO;K(W((LPPR?^?O2]M4E3+UOY^(^Y_,*K[OM$=D50S#]7=%8&(LZ(B M3E\(%%!D4@91?_T+F%DGJ["R20 M+\$\,.3KM D@L_#DC8X-8.33,7HZ:,[/"A&*=P\AE]IF'LN\F(QO_,AQ> M@$6Z7^,=K1I-8)L7Y=9FBQ#>(#:@T$27(1+/"/J2 05 X &<*'D52TZ&VJ, ML$ >]Y?+F;2VE\RRLY90RYXGJ!$K4P1"/F ,<8UNE]]-?4V+2<%8_LHZZJN"46-HKGL6(?2V+6R3 M1&NP1">A"?@!?A%=@%S>J%QF=(,[D,N+S(-]K6 N>OS2,?OA!![VY"*G0K!9 MY%/!C*]]&L,?&/*E!F_IM?^O5-,&B1KAQ1\[:1QG[J7EK%Y0)>^EHZD377>-(55-QS%F1FI M%^>QHX?_]0-;_S#%E)0?9!314!K5I[*&H]-8]XO90-$H32805<6GJJY33,P6 M__F7$O]/-3;?_Q/_\?1-,TM3O$3F%_]6#7]E*;MO*5\\;NY)P%'J*T8D6XX_ M6ARJG+$D-/8(;3#\?\DK/'ON3P^#9IIEO>B->WK"B7D Q9_IE MF?F*/0'F MMQ_ B*5J+AR3]?\*S_Z>$"%S2+:RA9[1Z1%/H:2KZK?'7WOZ+,7&'Q^Z?EK] M]LW3+"4P-MHOA_1XQH&[^H8B7\F?SQ='OE)$YHA/HN%C?QU'S,,++T'9O_4% M[AUP+9+!5$JBK52C>W5>/$#./7FS0CM$M\6^5(A_ILH M-&LEMA__(/;C_[3X=E\L".5"O$FAQ9\4^--/C 2Z@V]'N"ZQ*9^X;OK35SY_ MMR_?_Q$Z2FR:QXC_S__\:_H3TE*XAC JQL@SDM!D',UXZWU4@BH6K\ ;I-Q<"9[JLW*L2_RZ[,II=N8)8"7QZTH#'HRHJ$T&)E!IMK/&";RV:UU3(C&9?A7U=JNHOVE7E[*D';=:-/5.&F MX; RD5VICZM60ZAB0]Y03&5FEP;#NCJ/5V:^?;D?E^TYK:]X2/?4C;[WHO8H M69EYH[Y3)]N,9U5YQ6MZM4Z]V'2PKDQFOWW%9(3&^U:I]RI&9%, M95?B^Z4&11QO2UR_[_;@8.[,6EV9SJYTAHMVWUR4 S-L0-IFJ,R[$ZDK,]F5 M3*^[M^W)GH3)65&B=V1C1E3CS2_MNQ';%80>7=LRTRLQK?;M*=64$R2Z% MV>8.\G95;.E&BG6:6[D277<#]W=XTU/IFU,8)G9_&2['LTHI' MU&C6ES:2#4]4SD8K56\WEY$CA]_F<,$R(X8RA>FX)%0:Y$C#TZ7DKTL;5IU= MCRT+ET07,VJ,M@X()UYZA%%J4ZR_I>3-SE2HF)OZ.Y2(A'BOQTZ58.!M6=7W ML-AO\H$E,FY8BXEUY+#(QD#0AU]1X/6KO="+>P!%V66UUI<%SQ;8I5.;#P8XR M.4*>)TLS>^U9W,)?M^M5"1U4^SW"VK/ MI 2&F2/2KHIOHS6+S$*A*V-_\>LAF_Y)]SU8]K'>:RDK7_OV])?G]R_YXW8] M**$0_!6G:)B@:/(7]?29_?^HF\+/=9^O;L^6[\3-URHR<;Z^EG*/%V?#OH\\E\R3_JT8]&4OK%3TN5:6PXAH%V M8OWY5TOQV<+X'U_KR'IN_7S04X=2@/"?0'CD*_ZBBQ00_DR$9[["+Y;% \(# MJ+DMP@.H^3RH>;&E#B#\^: &8/P'"/^:'%TE#-R7$W3_I-2?[]WI8T[/$V5D MO?3>[[WZ\DV)^+V3#__[A?AR6JI@7U'DHEEJ]"L"GR]YEOL+3],*K?@?%GZ! M=U1-+;04;[8XN.TQY.&I.')Z5EXZ0UNGB_ 2@)6^,=9 F&NZ\(X!TM\]&KXWVEO1@?=%-\ZCWZ2R^CCN>JX2PH>(?K\R3E.M< *_E#C]-4 MXYSC ON\8IM2Z"G)V MJPO=5G5 PFA#A[I,8[@55A]I\9Z*3-ES[21=/'GEH1$LN-"/STCS^.UC32_K M^UK\_^JAO^NOQ3NUYH3<$(Q2-P5C4QTZRYX7>$FJ:U)41SW V)EF/ $A_40A MO:G9*+\(*<(\$]+XAS<*Z<2C&Q,-LWD>*A-KS.K.](80?;*0!KUP5^+)247B M=I"A<#URL9A%L9 F!7;D XF_;M#*;:LU^?0;9"9<.4D3@1?4'6!>Y=2\ND2O M6* ^)<@<+53Y("B/\/F(S?,)$51%39A+4%O5)W7;LR24_61LUM5&'R_N%Z[) MV8&S+.[;L"JR,IGVD"8?$!*[<*,D(/;7)_9 (7M![$6WI9L;'=;AM3XK-SR2 MVK>ES[:; I0>K2MUEY?6AF]&$5FNE=QY+/9)AVGZ 6>R8VN "RJ7+JBRH5GQ MQ@Z,F+9T.DP' RZI5T!O3KOWOTOQNI\.H3KDMVBJ_PF M%"6EO>&-+87K&_NSX9J6]_7ZV*^Z/,HSY9+3FH?>D)736>88_,#@9VH=!00_ M[X)_5_UH3^0K.R[XS>J8Z#;(%B2)^+;I=Q%.,8S/-L]V#+T/]QBDPD9%J1GC M!MXR8STM':2.80\4=J:>_%>ECN7<=?93_TWO1Z(-,*)/:43G%-!/ZUN[6Z3_ M5<7K1O.>(_B-G638FPU.HTML'\X_&:LU5"Q14P%O\<(,,TJ>,VYOT\8WR0 5 M G] L)=F,0 8 # %+ZW*7QK=(?A7I58FL,=RH:[IA%MM<]6V0PBPC9ZP!WUK^TJ0YUP\>^Z9O5TE7T]\F3-\D5N,U76(Y]T@<(D?)999TZUW].8D9F"3W M'-X'63V72HI.1%+0*ZZK^G\YJ7TQ5CZ/&!K1N.4IO ]W^(00;L+ MNIG*9!(;H1XHYESEFM>DNUR5\TA_>_HQL#?OV=X$"M,G92*_":FG.+OW%Y5. MFT>QWF0DXDAK3++IX,XOWU'L@49>A]1 UN]9UH$B]DG)QV^2]3&^Z^B-_F@. M0RJBDZS::R-\*NNQ5H:2#PQ, E?3=;B:1,VRXJ<_%.::HR6S>!.%3%%MPS'\ MP$O[XS_+7 '&;N[ %^A3%TS[?926RD%68J!D?Y(4_B H1Q#3,6JLU-,6)=XP MH;W@S1L6G\R8Q%+?$O9 DBCP+=VFN-V32G/B]-IWB]N892QTR>L5<]>36O/V M-@CFY73X:N(V0F-Q U505^(V$K5X-XHS>UD- 5;CE59 Y(@:H&+JO*K3HQRG M&?'($=#V<<2S*CMB)*T'5'F[-^%U>]Y-9ELG.M(##%^\PPB @ON%@GQ7326D M0-"S>N.N3)G)A\[R4^7V[$CM#S#I$80[($A<.!MN4_1S/>U?M7>FM>()LMH_&;! M,V5^MUA3MO*3#X],_$S:L[,M;6"[KEVP3V< MM^L C\PMF6&@-&F[(V&DU"&A)C($[;../P M T*#4C @YK?M1+D-;>M%,:>[*PS=R91HBN2B;Z%[MP2942+FL;Z%)VV;7Q=W M!DZESVDM ]IX7$G& &@K _CQ[OD1M)7)VP663T?"+RD>M63LMN8'!2-591X* MCA8 6P.4!H"TU1.Y!)X$[& J/+IGVZ[C/MD0;2TX8CR0;J=HTVVDR5?V6D7J M8DMI,6-E).U/BR.OF\$'A/:>A18DOUY::$VOMZP(L%DQ(0Y9=_D]3C/(/!': MI#;GXK/9KDE9RI-.E)9Z/>6-_%8CNDD,O25?ZJU%1E[(.P.\>'.\F"_W?<)_ M_[CJ*ST%]>=7^$]W>WR9QZ\=/_+(K;ZVH"6V)G$8'DK\IF@OD 92ZW1R%0-F"8A9@,@$_QPG]'$^AT*>)'(83 MQM03?F0J%5,)/*SK)_+';P-/B>\XPU&\72W0;#_&Y^0-/#>M/7RRPHYA\M"? M:D.RY<.":M1GR(HW:FPW?K''% J" 2D40-R!A^2,'I)+BKL3N)[.H2H=D\G?NIRP:KLA\,MI$ZY8JR(\;S37",DFPAGK.\P190MIN.Y,6#^)LT^:&*AOAQ.5=@8;4-CL-LM M%E0DHVGS6PQ[@)F+SUX!@GE-@@F\0.<13+):IEKZ<#'A&P-I[/OE4FNX3@7S ML?X%!YUJ\^JTB9_1U'S_6Y+\\A0S4X+ ,Z9AH$PMK1"XA?CC05+E1:O)"957K27J,VDH,QX=FN_0#\\H^7$"Z M@72_4A^[)^F^I$)V1+H[FB]J%2T2I-!T^" <8\M^+97NPX F^O*]M*])"_ML M90NTV0!M-G(3Q0/\"/@Q3\&KS^+':[K @6*[K2.H#;5E7C'IT5ZU37X6Q?H:]29]#M1S9E=&7W##P$\2B9+*I!?" M6S>)/S<),WF_*-^9Y/9H\X1H<]VBAM616>D;;! M]GY0FN?)G_&F)+DGZ60/ MPMD.DR^)MY*^K/"7:/[LB-@,X5A9@N#]/'"]80FJ=6642?O[40\H M!1P=]R[>5U&W_7[QOK!+XZ+BO8[FQ;W)$"-I;4W6FB,V\3T[3\2;_/(=HQ\H M!/@Z)ON]4*,"9B%.34+0;?EN]3/'GW3&1P_ N'=3DW7BPK5@"N\;WLC MHJR@U;F,I1V8*>(! QV8 00 '>[J=+@W0 $M81FO0X[$M39D@3,(\@>81,( M(%,(0$&#GY_5NW^E==N?MI$/R]-,2WH,_+R1_D(K*+.9:\=?LTL4/L<-XN0'-/L0HKQ0L*KEX(%IJO)2*C)JTPU>1O:9\()5$G=<-1G)D1+_>? M!,3_^H&M?YAB2LKJL@*K-$%.$7E*H:B,D\I,GF(P)A/(#%,8!=-I18^_X%]* M_#_5V'S_3_S'TS?-+$WQ$M9=_%LU_)6E[+ZE7/"XN:>(/4I]Q8ADR_%'BU0R MOV%)P^Q'N(?A_TM>X=ES?WH8--,LZT6SX.D))^8!%'_6X/M 9_3 ]"D=GOWY MO__S?/=9D7],4WA&KDU' MI@.6; F!8[+^7^'9WQ,B9 [)5K;0,SH]X@9D:7KP[?'7GCY+[Y0?'[J^D<#: M-T^S8MS?:+\7CA)5?3W_H" M]XL4O.DK#C\FOQBC;GS'6(=/HL/+/'[TC%$2XB7XD+:JB"4_F1&0"/0/^5*^ M/^.4XQ+SZ[D<(_?["/9\[U/74O\$,M"BS_I-9!^8B1 'GP[PH,(^APJOY7%+651):UR/9#2[^'P M1JU4"NE9D=IVN_%*XM>5C-U3<;QCB&;#GEO[>:^NUJ91K %FGAF2$*8:.[TL M53 /-VE^K.RVD8S+<.:9:%]<,KH-26+1PP>QDA5IT3Q>F7DF2HO3_KHD*.:0 M;H^XHM+AMT*R,K//%;5SMYVQV>0- 5+X4*C.D4DD$]EO5Q81X=G[S4I:._M) MPYOC/:C(RF1VY6@%"Q6A@QMF8PX%\(KH-.O5*%Z9V:>_JH=UIJYV8)$I1Z,B M7W47PWF\,K//FBE6VURHB+PPJ&]US>2ZOMV5J>RWNSBRWN-K5H%)/>*:N^)\ M U=9F-"K.793?2<,VSB_L;C==F=DGK"U=FW;\HM3P!^.ECTI#9Y"L M?-KGH0_/TYUV2,&+[S-+6?G:MZ>_/)<'"X7)0S,U^:@#I5_\M%29QGIA;(F<^'K\51%\MC#^Q]=J],^5FP]ZI+$7 M[7A ^#,1'OF*O^@E!X0_$^&9K^B+3A] > UMT5X #6?!S4O^@,!X5\F_&M" MTJFZ^B'=\GSO3A\SK4\4MWGIO=^+P/FF1/S>R8?__4)\.2U5L*\4>='^P?2? MO=HO>BSZ"T_3"JWX'Q9^@7=432VT%&^V.#B',.3A*70V?6-^!Q"F3Q0F.D.( MEWC@<,39/W\^].=B@YY6;!#X*W79SOH?%9LD"2)#'L 2IV6)*^.(),\/H.05 MB<0MJ1PYDH1_&$XA6+BAKSBJ_\^WR\2K,D,O(!:7FGUX6:[^]%ROO[RD>>6SF?R+(]:4Y8B%/'2R,I5U;\]LN\9YBKF>.&A),,>1Z22#^-9,/WUIL>^YK_4=^%YD^K^QZ ML>KB%&:AYVG.;%<(/,7QK93T!45=AGY@'_)\3E"OGA'UE'[?\DK^T-< M8\5=T/O*]J6I]&MGO)MLI;$M0=6*WMIH=!>BNS*1CJUY@(],K3G-6'H K?Q MT@>%(T<@<%,*R=GPX%<88"0]K!?70I'GH/(V4'O^JFG,8QA(YMN\6)=_39Z, MGR@)?!K =@(^C9.I+D=0Z@EOXI^L,*%DQ_521'K?Q%-^!!$1N@[WDK@0%7DS M,[4RF60M)XX1] %^Y4QC(-QW*MS ,9)CX?9T:V\VF1D'#V6B(HI536!Z2:'! MP;M"(=?D78F?T=1\_UMA=D3AR,S[C=\)>D:DM+XRH1*PLX"=E5]GR[TH+^_$ M,W:A!&.CR(]Y.](19\4 M)4@7YL,=S.&6VG @/%CR25%CXD!!'BCZC?K+5?E0,BH-%[]BZ!=BRGXM !OL MM#98#J=;G-8#<[UC+ZY7RSF":.--<8; M1XO<5@4RFQOIZCCN4RG&@S]@)$@ M#P6(^@?],?L/V79@KY85T3#CT/JW;?;PD"[+=!N*_?MMLZ .(\]HC"&Q'$45F0*4R,6;51%9HEOBAHPW#*+TS;R: +&,VIC M:L-V-,UEDZ69G7;G1*=CU!857O"PT56M=1HF/=W31TW*S5(Q(WC8;15SOM$1UVV7AE MYML%V>^0M%Y29&?*71SN+K00E2Q*W-MI@)+J^9I)G,K^N MG*#-O4C6YC2L51F*[^ XS[>2E/;L02$KF3-F>VT%D_-XZ&F8[+'&N$51]-(:^YZ M/"^L"*:N5!Q1L).TM\PSJ9E;*4M_G=E9$Y)V.K"]VP-$,K6YOY]+#4B/C*9*0T](VW MFFRC8^T% [9IL?W6>@HWYE"$&VGZ3ME MMMK4]BUKV?$6\$X,N49HC?L]/SK6";'O*YC?I#8]"5I &-,=0L9XS<8KLWTM M1^UBO8)M38F4_:Y4ANQY14F>F054I%]<28. X7=T:[:E*VUO1B0ABPRAUA-W M2^TDTS9)<[\PNWAKW1"3E5E"H9;5K9%=8B*MUZ;=:_DUVV.2KT>P#$[T]V;0 M#V-I-88&:?JC%E&<)>^4I:F*XAY)2KVZA$:^/JHWFK6!D&X@(WXUFC66?@@M MI6$/UYJ&SW1+>G2L9V0C\-!%L)AO>!36!P$[K JZT8U79M_*&L*(4&;*.QY= M\Y/B:-;R^_O$09+=JCP)*D5V2:)P92(H@\40*ZM6\M3L\=O%62"1I7(H<3L1 MM[0A&30-5F:R6\6#WJ"J-!JB)*SP\KXJ&<5^S%-,]OC'\!XWI(9MP!6E$ZZ' M^X[DB_-X9;9=Z*BU&@XL.^*YKDYNN^O%&C*29V:.?S9>ZR+JK5M\N"/:[98L M-L59\LPLH18;M+Y08AV)-T;1.-#+2UV*-2_F"*$L;2.T-(E33#*8;QH3K[[< M^\G;9\^T"O<4@YN;(XELMD9ME]]#4B59BF;>?[LM^>7*AA?A4"[SJAXVMX$Z MCW>:)6I'&WGZNENIF-!F!?5[;1(J0=UD:5;W48:V1C&""2L345)MKSZ=!>E3 M,V3M,461Z?5[72DL&FVK6V+71@>,M;AL"KO3 ,SY]HB?6J6 ML)42,6'86F/-[]A^:")UKFE/TLUF*1N,MNQD#8U$6 A"N;Z2:K5@=UB;(:VX M<2R89C'$Y.026]U;2!4?IWO(TG852MN).!%',+H9F=H&;] [+%Z+9&E+$UK% M#6QA"I.#YL*I+DO"F&*3I1DJR"VXCB"U )'632OIT#T-FXR:\FVYVJXB)&&V7+LUP&$%5)ZJWV==-L<[C MR-)7\'HOW4"&MMYF/BU;@=0RC=E 0N!N?]6HITN/T';O#+URK[;GA]Z,K9:0 MJ=LSTAUDH;ODC75ML8$J)JH2]+[I;:H$/4_79LX!&MHN4EU-(KBQTQ?E0*CL ME!CE$"Q++[LZ1,+%9-V#AU61GZ_F)!2NNLG2#+UZ.TF08@!=P=#6M.48\\/5 M(GUJ%NB\K20+K8X%#\>NU>:5H473Z=(,O7989=2>;!$'1NO3*I^.LX,/:#"]J MM%EC@Y)=E&Q2UZ1@5+(GPW1MEA>YD3OI1Q$7RP/DLA@TPZ$V$Y_#$9O$"1N# M]; O"GQ%DD4M'!!]<1,E2[-&29$W*&$3*\WHN,?-1 -A_7HW69JA;;^)L9RA M5"*88YJU8-N:EJ<*FRS-T#80IKV600P\2:@AI ;7)P.ID6[@"-JQ;:?9X*DV M/)371F4#]Z!!Z; VPXM+V D'S>ZL:"K]_F( T20O<2D-LK1M,C3#[W5^8NXL M%Z(;G7$4)A#A3EOI!K)$6,]4;&/-&XYDU*7-F%RC M6X@XK,V*PUCAR"E4WIGK?JN*M0C'&W)1NC9S9IQL3MK+(4F8D#SL%AN;AF+: MZ7:S!L)HHYNC0!Q*?&Q(DMWUB)R.G'0/60M!GBR*U0Y2(V#(3GIDLYY(;0]K M,R3SJ%%?'VS'NJGM:E:]/W%UMQ$?VA'5M[R7ZF1YBS&2@N!%I\$1=&N;+LT\ MM=_R=YW2"IPFOH,I0JY(HP8^4_69LYB&Z3WYMEU&$E3A?0LE+G8+'-IFLS!S%0 MVVS%X(P&7/$7\:IJKTI3Z9ME#R)R>SVDC,=WNH'T(\00U\M1(WUN]B"((B.: MXVZO8JY%9V17HFE'V:;[S1Y$8]=?A62)V_!&FQU,2T*@T,V8#D?TY;%)U'S4 M;E=@J$RP2#?P.RUBGBS-4*%A(B/?'C@V;\_ATF3G]6!Z%"5+,T1P9$;:DXM2 MT32$/E,:QIJ;.$TWD$&0-M>V(,O%$'X]WE2U+39;C(KITNR9#:J-I29*T,0, MM0:]KQLQ8ZB'M1D$J6WWR-!9D22_=JE>F?(@M=8YK,T@N<,H4VN]Z!,2MX?] M)KO1&SWOL#;#8R9.K7H0UG',!B(8R]*L9TQJ\=HC"GZETU &2 ^I\$I4IS2Q M(15+0I0LS="VTN/V]$9#]GQ%K2P8MJ(.:\WTJ=F;SZU24V56:\+*3JWNZ].) MNFW-DZ49VF(KOUXL=L=57B0T?$AL1DW723>0I6U[@T"CRIJE)+ODNC!$Z?/! M)'ULEE[$=H"WS*)F2R*UFQ$"BI#>YO#<#+V&16NZ[85+DT=+H;_6%*&]W*3/ MS=Y\Z);L+KKL0##7W'A!=:,E*J\B&3VBYU=":[H)(L/G0\672GP;@YCXDD2/ M:.3XK*OU5&6(\788NI&Y":<)DJ/'-')'XIL=L8$YYKJ\V;3%'KZI*-UT;=;6 M8?;>QJI[#$SN*&96P0?]WO:P-D,%=H)W=NL91DDB-(!EPS3+>'REHD>T;$1" M2HVN5N[ 0QXQE6ADS9U^NC3+-?LN&JVCR.8KN([T!W,.Y:OS9&F&:WR#%25R MP3=@K:08M6"XI%0V?6J&7G;/#[O2>([$QDMQ#ZT9:^1[4;(T2Z\@'%%KN=:9 MF^MUUPN,D)N+03==FY'("EP;1J81^9(@#Q1*#,1RV$QWFZ4M55FL.Q16$4RT MO!6]9L-21I-X#T?T\?:^CHSM2C QAZKD*X)M-]:#=&F&7I!EH^H^0E48;7E6 MCVL7VU@L9>@1?;R_@TJ[:FU3E+3MC*<0I5-MQ 8!>D0?7]LK>EWJ5"%^O3P1_\B64[;#;D\P-6NM>71% MF!E&NMLL?W%[15MA= V7E*Y8+8X4I#$KQGLXHH_W1]+"BQHL;G(DHK07)"I4 MX&ZR-#MX9047V]LJ:IH:-ZPT]B%?KT3I4S/TFE:V.M^0'=4TUN71=KDJH6%M MGBS-HM*TO&?T]A:'4:%'\)UI@"ABNC1++YW"G8Y>Z;%\PQW5PR;NX<8FW6R6 MO]K$JH/5)F2?U[@5C-=+ZSW42'=[1&<,%BVBBQ_3Q49?; M1VUW92J3L+E?CROE2FR5H$?T\8:^XVV\+:&F 8UK@U)]RJ[D= ,9VJKR0&[/ M%6@C-;@=Z="TB+J;]*E9VG;E& [1,CKB%7RPJK1KD8GYZ6:SM(48>-"M%AD7 M%JA2K1J4!&RT/CPW0]O^CNC#S5E#DZ#QB*]WVT80Q)H*>D0?1]9:%>*6P5"J ME.BQUQJ-('8Q3Y9F=)KNU+#1N;#3X#4_FU"5?K'14=.G9C8@3&/%DIA&<[[" M![:JX=YD$G63I5DBK+9+M"M&JYJT&VZXY:(".VX2JSNFCR^&YLSO\/K4#,DR MW9K!?;TW3W>;50,9IC3>&%VC"'.Q"F8ZR*I+C0]K,VK@LK)I'&OBN63<7'F23I/6 7ONK M3QER0("Q'I]!>.(K2@#"?PK'(R\.G :$/QOAP02A3R$\_I4 \U0^@_#P5P:, MY_N'"YWA'A\:\8X/A/NEP10/C/@1HPD/)SM!H&8/PG:36 M[@!I[H?PQ%<:N..!._ZN"(\#PG\&X6D -0!J[HSPP%7S*80GP5QY #5W1GA@ M0'V6JP9 S0<(?Y)YTG_,*LOW%.7WO/=[$?A^*/&GO*MS3*S[#6FHKT3.B/.G MW*CSL4D>:7&.44'728L_91#=$RW^E-1S3[3X4Y[-O8,I8!0 IF_.&+DG6OPI MB2/OM(C?//GPOU_0+R>E"_45.8/E\I9NGGGFFC_$X^^8:3A)\5ZPS&RZ /8 _Y%X5DKOSAPC!0O. )^13 M$ 7/MS;2=AT(<,8MV/^GYHR^&_RJA0 C/_?2065(\98S/\RRR_Z908@S&_<_ MCP!&5MM".B/U'!. 3V[>N;;M.@4Q<&!]:_@V+B0O$T_]SZ^6E+[_[$(T^/X.+]33WCIU]] M#<9>#%>)K]1U.P!8.Z9 <%W>HXMSSVDY)BE+ ^CSB;5J-X0^) [0Y\*.QYOA MGH/K\8JYAU-61B9PF'/7Y"UQ#W+5W,,KGA/OY]QWUX6MJZOAGT+?U_SSZD" ?U[VBUXQ__RCI.G&S C^^7;7 MZ=]F,TW3]0MG4'W,/5A4+,69:04E*)2TF69/->_ ,1CR$_QC9^ :?L*;.DWJ$0.D;0T_3_?I'BO\ABH#BJ MXJFRGWHRY!!MKEO4L#HR*WV##:+%W@]*\R^%)'(5[S']1=:7!5U&4!E#Y(3? MY-"'YHJR2AX6:'8LTVGEC:"G>37LUO!_K#@DW*3_S+92_LW^\B$6DD1172?^ MT3_R@/3!C[]?VP])<;FM8'!(]<L:K-#%NQ_/]^@; O!=WU;"7X M[Q=C&WQS0EMU@\=__U)P%#LFY>,7?#MX=(0P\!/*Q.<:(V[,'/&*^"F/HWU1 M;C*=4'W?A-'^J&VT!U&;W;$RD0CXV"#QC&J;SQ_MNVW6>)28\J>1'<&]&F!-OLZ[# M/+075U6*)Y+SE;=>[5UM M7N6Y$CM&ZAW.G^^Z9U55*C.DW5O-G#VLT.R"$&B[K.+=6&2I5%5!,?(S5!4@ MM4!5^;RFC&=&L813$/3U8?3W7W[G+:&^?C%Z<*BOQ.\E MA>NIOG2@0&H@B0*/8%^^(RCY@"?>P\OK P#' (Z=:@!FSNB1,QQ[JEEZ"O\_ M EBGV>LOF]YR*^WP$MSI5@(WM2?R!F#6UJT5(ZC$2'8STFKTREL2J><5(;]\ M)Y 'DL8^ ;_.$0ZY)0![>7YGS@3V[ #VI[&:IZ;'FQ'K'_F"K&<]AM/V.C_5 MUQVR4!Y1C*T0K:V$2RJL02L?-UV#TI#H\U$L/I7XJX_ V0@KD0.GK8_X1ABV M48*JAIX3)7#&?/D>RV<&RUZ?: / ##AG+@!F)V_ ?%?:V''$>$0S7#='6QL; MV[PM%7G!KC+%#O(!;_&Y=#*[4>Y21N%FH M3E2.1_'FJ@%Y772JI>"3Q*1)] %#_^31.I(L^-DY@2\!2=*Z=AGZ07*Y% *W ML/(,URNLM/@_JO\"U2J_BK7.0 MF?$']CZQM5D*/25YCHS(J;G)R'U7QAYM3^:DF1GH9E\=#-N3"C]LU;R0$KQ@ MC;[?CNTDQE8GM;5ZVBS)#37T^*13 _:'57;$3-TB)8,E#&C!*_BN&05ZLX_[ MD4P>$B_P!Q@CCEBI)[PK[T^J[A5+/CT[XO*:8,YU$H"LS/%E0>M MJVO5&E3.KW'_-L>F+2S+.ZV]'9I0N* D:]*$1HL$0]+P-/Y H-F4P7\"',F9 M\GWJ>_JIT4Z^4EU_Q $ %U? /H>18DE\*B.8[U02T0[F Z*TV \B-I-Q(C#BW*J< S@""RY=NEY[.!W96C50QW;D5AC#YFT!,$T"1XMUV9EKEP: MSEJL3*6Q1O1(CM]+@4: 5$#[O8B9>.=(M49W&.Y5B:4YW*%LN&L:T59[?_.V M,\++=K[DYL@>=:4U/&/[I,PLI&X*+\1KX>7JBEUY7==F0<'5"]RPD)Q_P=-4 MS5[]*;J;"Y#,659&_F.UI^\ _58UY9)]WVF=<3>CKC?BUW.F9VVJK6 P_F"1 M?(T5^SW9Z.UUI2&?0]'<6S;CE;=6!*IWVD#)TV;OHDL M$* .W$E.QWVF;MRGZ^WF$C'R'!FX:'G_1Y57?=AL2_N*M>=1UBU/>F5N+'") M\IJ4^>/8 \TPH,P?8 HH\\^-AS;O!WTC&2@Y3S3)7U#J2@K[WWIA_M;8I&UT M,->%/64.L5JGX7GSB=%-C,VDTI\XV@@? LP-4&E_^WDY9P,2Z8DPJV%J5HU M46ZUW)O"=#P5V"2,A:9:.(-EY[,#/,F;'@XJ_D'%_]LZH:N:KGF>IA8"95M0 M?%\+"KKGVF],',EWVMWUI)7E/=4$M 4 J>)Y($?^DR% 6P#0%N#36>-& L( M1$%; - 6 -1[W$U;@&OW@%TD_APMU&]_V;)]]S=?6GHT<8'AG M2M=&[?E$@E 46R]7\-8?L3*3AJ+I!Q1#/ZD8#6 3P*8;CFKGVWUTM:QQ(W%P MT(D!2 JP#&^Y$P.0E*MA#:!]@4X Y^@$< 9KSN]WZ\(XG&\ED=MT2I..8%:0 M*+;FDLK_UUIS5U?['U.F8-@QIZ;U_UIJIA<"3W'\PSN"^O_["\K>9^SU/G7 M.XRDWF? ] [CHO<9_@0X=B?!S/N,6=ZG 9KS""2HA_V@!>O_UH2-#;2>-M., MC3*U-';N:=IO!GFJ?8RN(>!/\#>P/2YX6@=8&^@G.0DQ)9WT^:*[=39WFP2 M*%)]]8:/Y0?SEH(82U%!>1Z?. MZ^J4>^C4F?Y95'Q-3;:G.7Y*E2-05>TR[GJZ"3T3&E;V0D/BI_ZR*R-(TK0; M1=[4;PP4O(*,/%#P^NG^W]O#M+2'R^LAS:9*0W2F-2448JFH6H?W.A$ED):, M.?D,0+N1,#NH2P9UR>"N W7)H"XY!ZQQ(QXP4)=\PWD 'U+K?IO,WJ[-NS41 M\1C)%JQU3QC5=A$T3_2[-!G@ :?>UI\/U"8#?+H /EU_X#7?;MFK98T;R40 MM^.)7+<4&1M7"861FK1 MI?D2L45WD_7)Z:R-^!"?#=LH&.FTC;RGA^4N+RKOF0Z@,!EDM8+"Y+N+F-YA M8/0^XY\ Q^XDFGF?0=!+!R83OG_:!O)!QU3?-8 V=]]6_IY6PL$O:]LCW@<:Q-]I<\U:,,K$ELWFN@:+X61C*#IP%@$ MQ<[:3>(^8>4>39[\A^CR#"N7'!_[7B19BB*#*OVT0P3JJ+LD+<[4JZHS03<4_J3:B[JK..XT* M0],D])N&-9]BOU>;_W$]^0W7'P %U<,@9PY4#X-QN: L-0>L<2-A60"BH"P5 ME*6"Q..[*4O-N]6>XR+5UW2 2U.;I[^F-K..RF\U;V;XVF/;%6&5SA=M9N037EVKUZ(H M,?L.%:ZO,ONNKL"UK06@H/5]R1Y)/'?J>JKF08?%WY#5MN"[EJ$6_@:G_Y=K M3 %KR?,FKP@(UP%50Y!7" >MQ?+?5?(%C#"[45N 4Z>K. 6B,?MA6O?95(# M\3@6G 7B<7-Q0" =)ROXO6;IR'-J0T\+%,/15%[QG&0:VF-.0U2G&H/JGK?- MW6A.= TKN F M7W([B"]-NLGECJ9#(A]([$US(@%Z :/D_28[0*_/"Y9?#')\J"9@3GE5,XV= MW[9Q<26TK'D*.<27[SC]@./O"YCGMK)Z^CN>27^.M(3QXEU9:KRXJ%B*,],* M2E!H*=YL4<"0A__W-X2$_YT<^G_^-;W"=*7K2 M.L,0;M:7!3TO$VJ587/.NN[.E1IB$9W6F[YLX//W-[Y/R2"$@9\0)C[6(^"E M,Q6[UVP5'9A<2JCK-S&+*31BYANFN=.T^)_8)>%BMU5JE M7M?O>"ER)EH?F9WK>&XNSUU:3*)@* S$;F]3/%%GAQ5 M%A.'IL:T=EYM*%R,*@;M3&BX@M00R^X6Q:HZ3V2:^O(=I1\HA/X,;0B(-="& M3MT1XW8(]E<,ZNSW:[X23O(GB!DO\#7SU=D%\5A.US43[.)FR0<:25\UD90W/N.ABLF@VI5!J3>@]>4VRBD:0].&CF@8&S M P.*N';=#L'PAX6_R]_C^I&N@/N["$().;6XXZB'U'$)@X V$ MVK:K!=*PZJVM?KW4E2>I49;DZU'T \XE%FW"['D52V-&+8Y01A$GT_C$O)\-!XWE=EMZ8#GDB+,H%).1)YZ/D[/9T^.SE7*SLG#COF L;=EY-PJAITM'X@EC.)L M&?B\H:P&D^+(9#9^-P&^)!V(NGR1WZU&C4_;3^3FI/SBRLJI^H4HT@(6Q3VU MY8T90?.D,AE9U@?REE^AK+"+Z7XP&=9AGE3KLWIO3%FXFF (T"\D M;V(+E)4S)P" ;A]W(D:G=>M=N1B=/&4@']K Z73^#S3KT'5A@FQ;W6T-L"*-'Q",C!$,0Q\8T&PCAQ!VXF2<*X>PDV?E7$>KC/=K7Z_NE2$N MEJ;=\)FU!+E&=4)UN!TGY<"9^MM>&3I4&HZ:#%SB#;+4JID!-5[Q!T!COGS' MB:Q;%?3*^'0T PZ:LZ93W95"]F*KB_(N"I4*7:9-KE67H?YR4ULQ.>PUOPC4 M1@FI06UI;9N;H#$J2YB:HEC:ZH*F'QCT,\+B ,B 9?F)*7!7#F1Z9V^0>[0U MX<5(T\E&9Z",2SELM,-B^RHZUES"-&* 5"R]12^L _H07[X32:<*ALA[IXIL M7N!+2/+E^^&&**B&?Z!9,C N[[G!M]Z2XAJF%^Z.PW'>?NC7' M/YPPF LMP7"]UHA^^I:3-/$WQM;+GVJ7G M7N'?>=*K!U?\$8>ZMK KS4K@-&!1QU"%P3P>6K R0J?A//0A9K)C:0D 87*E M'Y[Z*CDT& TNL3VX?O#^V=$A$VS/M-*$C.6 MAL.@QYMMNTPH\Q01B--SDN'<_,GUE_RM)R>=IH"EZP\'FHR"PJ5*A-2?+MA9G1 M0OW&JLO0#Y+]^'WW-]\:V[4];:89FR0%EYU[6KK_EPJ8%$$KKA<,OS%18L0L M%I$RW/2[,L*D->5,=L#E2X["6RTI!P"5(W+<0D@ZWSZDJV6-&PEB7VN=,I"4 MJV$-8![FK0862$H^60-H7R#J>XZH[_E,NJFF\+VE@TD2-+#%_5",K$6+34RZ M)-C[*I/NZLHI#R9Z08GB@RYL-#](FB/E/:4E9QDL^0_)GK[%\%M=09?L+,X2 M.$/2/O?[![1,WW0TV-WSJIVM8\PU4/?8C3/XN*KZG)]C3' M3ZER!%RV76.ZS_2R*J97,3T"Q8UTB3EAV< MA\OO4U&\N MZ/W)/NG; Z*!8H7:JW&HL=OTW$UW7#?#"5X=J]A LI?=!(>2A+8SHM"-I"#< M8:;!?284@.OF3M(#[C,+X#Z].2"F?_TQ_0^I0[]U_M!W[5*SO,#Y]GV'H M.XPVWV=0&>#8G82([S,2?)_FYLW%=?/L]+IH.?!K>L*ER=_37Y._64?EMYHW M,WSML3&,L$J'61TQ:EM^47+Z*XR6UI'>\>B1.(,&D8RB:9DP\H#B\'D[.=V? M#-XK\EQ_H#P7?HV\'_2-A+US'MT&[ W,HANN$[XMO?&2P=++J(W[VKS8P!5D M )/%56,8!7R%V,T3M3&)J%)8-A("< =HC>^R5P'NG"\F>AFPZ$K49#[;- W> M[AC3RH;$%+1[ (LT<,I0KX"+VZDWYA1_45"-C1'+C.HG1V?%%%8+_WAZYY=_ M_>\O[9O?+=_@K_/M^TW^0 MWY7F%5)"76_*S_6DM%Q_"!Q4>X-L5%#M#:J]0;5W#ECC1@+S $1!M3>H]@:Y MYJ#:.P>22.'"M]?+YOI2!I !#[WJ3$X"D /TU#^0 1<4G#J#_ M2?64D/ED7IJ,-7@7[#15BD;A@)PGJF<2^GZMZGEU-<-M+?AS"^U<(%ON\EV2 M$.G4]53-@PZ+OR&K;<%W+4,M_ U._^_*K[K[C)2^2\6[("-KU+UFZ0 A MT4-KNZ;K^V7/M;GX90PGC+].6&F'=_'C%5:8'%O']=*"CB#PC&D8*%-+Z[O' M*]:..+CX7=T9E&?1@M<:HP'<8>;[6+UGB?;'+7?5D:QH3U3 Y265G4*N"%$O= MY')/9T;C#\B17OX O8!1GQ3GOACD5&<5?EXU"4H:5OKC5L,V1TUT MGD(.\>4[ACW 3+9;_U47BT]_QS/ISY&6,%Z\*TN-%Q<52W%F6D$)"BW%FRT* M&/+P__Z&D/"_DT/_S[^F5YA;=#VY,]G0/!8CD.J&,8OG X+>PDNO!:3'+@(A MVERWJ&%U9%;Z!AM$B[T?E.8_8Q+KRX+^D@K%68KO/_:+^$E].K0$2/^9?52: MWJ9_/>LI\/C['73A[_I,9\P;<*53+&ES!.Z_'P'3[@2^$ 9^0ICX6(^ E\96 M-N.@@Q&FMNXV9JO9L#%RRH!.XI=YQ;:G*5/9%CQTS,$,\;B-8OU MW\_-4,=R,*Z98*=6S&X:!)-'+V*Z:9Y_V,F)U#YF,K!5?%8S>86.-*@Q"5E: MCQ+D3-(D*?SBL)F[M)J

    :Q!)Q[0(%+:T/%$P%!T!XZLE1C.%Z()AM)):NC MGO'^^-)KM*'R:%6$;*-(23O(P":MBNXQXVXBT]27[RCUP!"?H@T!L0;:T*F; M3-P.P?Z*09W]?LU7PDG^!#'C!;YFOCJ[(![+Z;IF@EW<+/G Y M>[%#]9G?' M\HU-1\''GM\N#C^@7)S+RM 6/4N?U1<,O^[.)DNQ,Y*%,/7/I,,N&.(!HY'/ MT$D $@(D/'&3DMLA6+Z0\#?Y>SMS!NL3=A))T%C8=6&R-A#T]X?XSP:!_7 R M67=F)<:T&\8JJ(XC;+69IQ"8Y.OAU -)'9OX\_L'1&32L=XD=:Q$'P B\%-=$2 >R_Z\ M9H+E2RE\,?MS8J DBA2K$DQVT=JTCHU1DLVA=8S4<-<;R68=)F?=KA39MC?8 MI/[Z--N381X8\C,\]@ )@7E\6D4$&OAVX.;1L MJSO;]O4BAID0$B!6@/><9?>0?$5\^4[@Z ..DG^ KS1O]%_I-Y\ 669:LML7 MH.65R'&6C?076D&9Q8I[_#6[F+(%QPWBYRE>_+%3,.)?F'N*55@I7E!P]4*L M]/M:PB?Q+GU-3?Z6IEXG%D%!-QS%F1GQ' M03/-LEY,A7YZPHE/%,7_0KY'],,/\IC2X=F?__L_SW>?O0T>@J:G!M\=?>_HLA?\?'[I^&E?YYFFQ<1W;TK\Z8;O3:KSC\F/QBC,#Q;6'] M=)L]?O2,41+B)4"5\&<"04G508(L/^1+^?Z,4XY+S*_G7Q,=L_5J;^UI@VZ6"*!7%6JG&]FJ\^ &<>O-FA':);XM\J1#_312:M1+; MCW\0^_%_6GR[+Q:$@OY.#?I9[?E' MZ"BQUA!?/W\Y8Q[1%J$5"D%G3 R[BBKCJ*;+-$I.99I1IQI-(*2J88]HJSQI M#P8,^:-&#:%,FUA&",.UM7VMFY36_+K2UK<[!9\)HH0JI5:WL]@*?%+Q?F0E MNIER:*5G2Y79+JHZ-+3 &[%&DN0T_KQR,AP%$#EI=4V%FK& ME TQ>6K%1N]P"O4[*E:!X;E,9K\=&OI0*!E2WU0D%]L..V-B46)E*KMRW*H: M.L^WFI)HM.K;2-Y%ECZ7Z>S*2#(@$]*"E52)W-Z.@@BILF1EYLA*V[0M"9)G MDL9&ZZK!!24C8F4$SBZM-#O-]JYJAORNZ9EULCC8+7I1LI3\=:E+TR+4YZH> M',J6L/.*G6V/F\L(DGTJHQ;QX69CC:5=>PC57:?$+(;Q!M#LTL68&!1[O#?C M2=*L-+R)/17<>"F67=J/M;#:,BCNI0K&65W-;ZU+\9$B1_BD-U+74;C&!5.K M]KF=.F 06HR7'F&420*=[<+S48%G.>,;=LV MU)K@3..]'CG63K>N1<1Z:L*#:$FG"([-L2P0F[ MOA(O/7*PF-3?(-M]2X6YFK4QA\)ZK"CSV*0YLM29=15IB0QA-&PP4R2*%F:W MF\PGS2QUQZ2'=S>&PU?X]G(ZY\AE&T[[N6:6ADL9EB5U'TG0@%[T=BY6]:MI M)5MFJ2390Y8OX6,3K6Z%Q?]G[TV;$U>2_>'W-^)^!T7/G2?.B0"/0""@S_P[ M@D4L9M]MWA!"*H% &UK8/OU369(P&+QU P9;$S%];%Q(55FY_#(K*S/?4^)2 MGV0_'VYL )'Z.K0'"_1>:Y).THXQXEB&-4B^*E'Z-H-YPM+N]U.SE SSB0?1T9)B9*A M!U*0J0O36#TF1V9RNS:+%&5UD9F.A\R1+1B(W,BP#35&AZ.K>55-9,:(3H,/ M>C"T_" .,S$FW*>=(C/JF+5Z9-U<#IDCNY5VXOD MD8)[9M6M-=,KOALV\UTFS+%9V-C8D2WHAPTUWL^;X6[;&B?7G2Y3+VEDZ,&R MIH)64AZ:D2*':A,SAU*3<)9MPM"#9?57FWRU]O!@TM$QZO9FV7;S?H"7=42V M='%&S\:94I-N3RVI,+!7^7BG"4,/)M )3ZK):GA)E\M:39R1[]:07T'=^\\7\?/E!1]Z3O'_N]A",3]=!VQ)2;* MFPZ0Y]V2%_M#^9&E*XZ-3NSXO!SXA16]-\J[Z[;^T8UWYHU4]8#P9R)\](Y^ M-2$O(/R9"!^)WK%L0/E/T36OMH4(Z!ZHFJ]%^$#5!*KF)NG^GLHVQ$_X(U!_ MOK4G/[#V-\[_7UOF[X+J\R[\3U-'\+KAP__W(_[CM%2)WL79BU;72K[CE/>U MZ']G8B)$5?$?)A;%:2(2W8)([O'*MBK2NW-)?H^73MM+ZW*L]*=*Y,4DP_/H ME8^D WQ=39,\X([7!,3E_\-_#R1BJU.BI]4ID=@=>]ERO'^J4SY40NT:%,8! M1[R\Z<&&']WP2.JV-_P$*B E.]?YN>BQPN#Q5UD>$5"^Y>LN6QL3W3'XC71 M>O]EG&N0X;-M^:EJGIY>EE,?4EO0294"Y]ZB)%-7*=TM,:N-*4C976"?'5GG MSA'_/$%/G4Z=_>;:WXI)?N6UOQD6O*0#\_GD^#3=]_E+#Z0@D();DX(/M@F_ M@*'?[0/^QRT ;M$H?[;6.=B1_SM%AXJ3ZX>4\?H-.6;O@LAMMU)HF+HDV]!* MX5AY%FT=KV_Z*:4[KTW#S5QG$!YHD+3-O-+\X 22=2,:+A"L6Q:L2&I'L/ O M\^B:B9G%^'367T?3SKHB+U?H]R_&ORI8CZI3GW33NCJ+SA:UYL.J:/%)N+G M_O@52X9BL6-70[^/8-U0\*"%,(L)>%V$M>!BF+9%&92MD]\$B"$8IKZ0X61P MM#X:1/@91! "W^GV?*?WUZOX?&KUIHA-OME9++'?LCU_)4/)H3?KO(W:W$ILXP"L2,LVGZEC: M&#.F9;\)6X((Q!4Z7Q]0N-?K1%V5)CXS MK5N'4I[XM@%DN@A15R3K8$O$7V ML5 Q(Q74,H?BY5E[W)C?9^XEO1EI#I. @F+1=ZGB;^_6'E4-I%E!X.TA?U@Q(279'2(YHR':G.>PKF^%CM\['S6J]J=S/Y.4P14(]H52"^=8N M9R!H-R]H9P8G[Q:T:3F?E*RUD9I%U]V$$2LQL7$5! W:;8781)!W>/X/6E;Z\;N9T9V1+ MCI(67G0&E^%A?9!9S"LS-:IUBEI:44N;)M3MQ5B'C<8#=S 0W)L1W&U[]H!% MKSQB4=(62+-US)=-GKLU37+3$& K7'T3TS>G+X^Y7H]& MUJ[3BW:D6^X)7+/=2M4GPA*J\),@!Q,/@AR!='Y+Z3QS<.1=TEGM1]>]2%CL MT858)G*/'6>Q,FV"=+(_?D6CL6\MFS<:%X'+5Q3F5N@MIEN\ K=S>,M"=A - MN16GZH;6_L65])DA5(&7-9#7NI8CTBJ[Y^QI(JZ1USJFZT(N,@LOBDX7U=54 M;CE6Z:I*6A9A7)5BWY>M^.V\U4#V ]F_%H#V^[*?9ZKV-"UE^MR\*>E5JU[, M*8,ER#[D*K/O\ZB^G>Q?=Z1JFZGL7Z+F5\>/K[X!+OL&*CC0M!<-5 DFXBV4 M0^Y_2YHO;24B;!V0M5?!UN0!::5QONF@=%[Q?6@;M/#\#XR'TBQ&2NS64&;=IW(< Q2"L&L4")UF.;S M]W<2TQN-9V4GO#;&WY2UW0HR!"63*^B*S!,*!-5D B_W-KSUI?)^N.3[? ;IXO,(7E-963H[X M/ZUV=S1CEO3#K,RDXHZ::%FI!/9_2.':9"@:.SS._U;^3R!MMREM%P\WO$O: MVL)@K$JV6N/:377!]5=EQDPO0=K@4E$\%$\EOK>XW5RXP0,E?N*4'%P?NAE/ MZCO>0OAB$&='[%X[BHE;>3%O#I4^G4T.U$AVNCWW>7\=IY@ M(,17(<1?$2[M2^Z!5V)B'(5X,\O-(_/D@Y!LUCK],0BL6U@O<7CW[RA,^G82 M>^6QFX:)#%X6R<5KS4+N68QN3Y#Y2K;Q-\!(-Z1%KUU9?G'$XTF0?[C-N8*4 MUL0Z2)&;!_@:%#+PG%HIL3GARD)!BPM&:B),T\.(6RHX%#OB@'XG_S,0R9L7 MR8M#F3\529/>5+05;4VY\$!NE@>YW"KCBB1)08G$@THSMQ@2VIY3&?SZI4.J M("X4N)1?U:7\M/.NABMO'9,7T6MZ-SU\R I*J?U(U_,SE1[4)X[3PWHWZ4:% M(D?JC09.9B##5R/#7QQ6O2#.SZ5X\U!;7*@)I_I[2?'$4=1)ISDW6TJ!02[W7J\A-[Q=>CY+_4^2 6X2R6X(8GP)EUUX(+ MKW5?B--;&3ZBU8O29KHQ\QVC.^^NT/!A(&GF:(SG22ZHQT.1H"!0H D"37 ; MR.^/-('9D!.Q;+R:ILL)L]2/Y^2.S#5!$V!\Q\1"4285:(*K#*,]6]ESB/?* M,MTOA14DV>3M%_%>;Q'M??91QO4M\6O[79!#>T]J^AX;Z= M(Q$(02 $WUX(/MV;/C#S6=Z0;5YQ\U!$V7;,W5R4P"&^]MR^3]<;GW_B?*83 MB.5$_-G@URK2;"NOFYZ@<#MRD1(28[!AF#?-A8 MB(V_\^[T5Q6R&XHR-$P=ST/TP@@6WNF@+U-P%!LQOTH*G><-YZV#0K>!G9\21I=AENP"^'T9A[+SM"!PU: @40 M*("KQFM_I VMFJDU=5(F+7-_$.E.5UORNDF* H>4._KUG(MQ/_*PL9O9AB MZUBD2],+1T%!&.FVU?*M:]_;#4.]D?Y6\L5M+_WMQ7L.]8+HT!.Z6)_-8[-1 MI9Y(/W!AK(.]8L@,S\E=_:#PCN9J?:,.#8%S.#LL&Z:M M=,&#G#-!(OAXC2-<]>(DJ! M\C!!$LFM^ '?H9[E[9]"Y%WAJH!L-4P9XU*#5WSI.U:!5J@,6L9HEN"WUAAIP,ITV:" 7Z99&R=2JK\)9%I3$[JJH. M:]:%&65->!--=$5$9I"I$;AF7U?3GCLKUE.J=6DK>%DB9VT0LR.J=A+.2:)Q MGQS0:BQ]STQ$)M**+8=14D(V%HHF@\M"@7Q>BWP^SU^%%46BI\@WN1E^O*& M2$ZV;%,>.: T++#\*E)'+]CW(!P2.%>!R?\MD[\K9E5>1!V](JN8O-NRTVN, M ##OK2N5;)5(()SN[0EG T/S(]B@-\U;-AVS>URY*-C#3E^]U]KC(4.[Y>6C M1V[+!&Y8(-O?2;;/'#@YGVQ+CZU54S*JRDRN#3H5>M/,B2DBV] .D0DZ/]]* M@*6%#,<4)G#.!->622 E"*%<9[[\]9'@.^;97R@$D]?-)]FL2Z^'8=A*M-?N M2_'JK#^=MRTM,TC<2V.8(CFC8HYTIPW",$$8YMO*\+GO%O^.#)?$J=9N&*TF MIRH=OC'I9C;=YA*F2$ZM8HEWGC-_51F^E=#5F]>+CV?#!D&MH$[$%ZD35189&S%3@^9J%M)CZ6#S*% #P1ZX(J! MW>0&2C-?JB/8G_?3@]\>KCLL^\\?P.D M%SCDP9626])) ><&G'N;G'LK 13\"$Z2D&##@11:"1->&R,*PSY$N3^3.U(D MI )5_LD/:.[("PR[M*#F;N!"?2$7ZDO5W'6ENBYQGDRWL$C7-7"PX/_:]W%U'V>R\M4I.UN$EZ OVQZ_8D6J2@;ZXPM#, M53@"MP<. Q\V\&%O2>T$G!MP[FUR[JU$7XZEK\B:8,+E>\A>">(NP=V-Z[^[ M\:7B)G_D\320*>MBR9/@''+_BW]7'-B 7=_*];>.N$CQ"5)3#SF[/W/,T<#. M#.-VEDL/&9;(BGRZ-AAPX:[#CT;FK-U4F0W2Z203 M&X,V@$3E1"B:.,QG";3!%<9,@G263W=? K>;U:-^J&UOXUU-JW\QX"(0B$X-L+P:>[T >V/8/PSQK< MYM4ERB#AE<#UO?7\L" -[-6 9]H:UJ5A)+H-<4J-COQC MKODY(995=>U3*+"#-8%:OI(4.JU$;I:(@]4HON._E2@1!_ M>R%.#BO]07AS7XPG.-6DR\FX01M%=7DU0KQ\F#;MP4.OWE5%BV;O,RG)3"Y! MB-D?OQ)T*!D[K#7]G63XAN(AG":^CI:"$,=Y\N\9K,Y$W1DIZ"*Z^?\NGGM_ M_@5^ML)^RC)IV_%T,SX59YRT/7 #*NM[&C2X>KM^'R12;'& MO9X>QMSROPP=PHL(SHD#71#H@C_5!=@!:ZL;NE-,LBDN;,ZGQ5YB6:?E3\HQ M.:(+852I0M0=$MQT00-B%Y M(I*B+RE9&7^94\#)E*983\:7B?$P%G,[ MUB53P8%@(,.!#)^KF,1)9+A+<]%"0TDW9ZJ=VG0KL9:2*C5!AJ$)<'"D?Q-1 MB?>A*UFC#'[-CY2@.?!5:]5 >5ZP+E>>E\T>KSBH+J4M"]F6KSV/Z,KU6.'C MLR77F#GUUK ZR+*%]6-Z&(N3JN2A!)OXULGK@9S=LIR=N>+51^0L-]$3=!LQ M_"P[#5=$OI@9,4LB9Z37&AO[WA>]"/CXCPV&_/33>N=$?N^U!SD2'HW=FE2D M@M6./ @8M"#3_43&6%:S?X;)F&? )Q+=RL@AA;VW:<"G"A[1F2"*%P1=Q0/7 M<%JCZ3:>,V_BCS4,D6PT-GD% R63M*ZQ)\A"(#;X]=#Z%_]$KI+Q-MH>^>#A MEHT_(.VB[_Z<2KL+_LAZS[IUKTSJ9_/HO_L?_GJ @W@0]-OE'E"U#X=<_B19X1N-HXHZ)PP3P1Q.7_1EP##PS M1M/_A@GM/'?O86$!*GVALQY%QJ1;?H,?P?AY_:N 4/$CL9D_3>U M\S,0X6"35'X5WJ'3OH9SO^9_1@S^]D/=DL&4_321@NWR CW;)&^/;=WX&8W< ML?O[&XO<)>('6WR2VH+,TW;\EZUTVR'WTG.IEKVCTK4< MU>YFVJ5<*=TJ<>V3JK]=S7VHEU[+7ZS5.US;G6:G3F7KM1Q7:W,Y^*E=KY1R MZ0[^)5^JI6O94KI"M3OX@RI7Z[2IOQR-=T0,M,2_MTF-YU_/@75\;7%_R1JV M[KIC8=ALA:!''<)?-)!)61- ]C$\R%*-RG>HC#_(',ID^+I(E:+>^MRD6C- M49$I"Z?P9/>!J4VWQAS/95DU-QNGFB7/'Y U!XEI^Y5Q0Q@6^4$A MC-0-/#7;=-#II.4%#/A.Q!>YTR2Q8ZD8V%>$>ZHOP",1>E_=CXCGT3^^9OPBXS?8SDC2Q9EWL3RMOT"/#GK MNA;^%T+0>,$MS.R_HX\!U@3Q8HBJ5++/7X8_\K]ZMS,P00K"?"P*>* MK(+6QO_E782Z?97_# L(^S39I_GW*8A#6"_.'HB#:8[P3#5^#"]3D3K"@O=$ M?7@>$!C"USQQRS3B0[X;8X 4\;_ MWW['GF"T.)X\'_Q\5[%9!I+C-3N*'=I;S8X7Z*[KB17=X< M#=(*W:4J0)SMGA& @K?$ULFK8+S/LQ[)P8>E]*6&!XW6NQ,-80:1A0E^!"8# M?J/F]@'15>SLVK8ICQP"^>'1P%EHCX@^VT<2_UA45L%L1:6!&U0=0!_64"'P MDJD%!'6H_WL].)63%[*(2&B*6%=K.'$VFV0T1E=F;37,-Y/A6F<@+U^_+.\I MT.%6?9-9U:4VS":]DJWMB"R9)OESNDJX;&AJX7'1X+(YKEYB,C,MNWG,LWOQ MK%(M_Y'KM>05Y-4-WJR;9%(B"7$UD-F&56Y#6[2KS&N\:0X+N5J!YEIE1(?# MLUIEL.%I&:OS7_0=?5C[9 >/;.7LR$X\R1SGPICCF 70C(F\%!O,*9XB!'J' MB'1A<(]Y3@-6P2RQIYA"WCO\3Y?H^2>.+_J$L;T/=?3FPAH4!NH(?B_ K>%"!8T2P&J$IYBTJ[3Z@Y=IX/*<\GAUVS\-E M\GP@Y1J[@!3"&RI2.22X)H>)A"B(G#J633[WM3CO7AT# M4P$.,B:)X)@FB6'RMF.B$.9@!0S;:)3P%-O/IY;YA M?7N2/EE]?G,+ &%K"6O=.0'$PLV&)74?QG#[N?':VS MPHQO-A:,DE0S#^+R&B![UR*$W4[Y,NQ?\I4C 9Y8;-\C"S (= V 4"+OH/*P M+ " G&'.@3W%[CN%_+6X8-"R'-5P^\#:@0VA#;WMQ?T\/N2P)^$O0L2=- MU!G\OG]+DT!I+'\^&L;V*.1AZA#^Z@)AU]E]+? E-AA8#/IX?EARW4FZBO;E M&8Z0P#N@BI%I\[*VIUW)[/%JX>\8/HO(0(38H.4D!P2>@AG _ 2L1[$@8?G M>$-P7+SHVAUJ@MD"?WEL(K(DO ^";,'S)5-7*7[!RPK!@!#O (TN>W!RJT,P MR_IQMQ$"VH$J!EG=>=>(!V.I:T\Z7\6*6A=U11\3*(TYP +8*4 :4NB0+G@Q M<.0BPP--_&Q1EB3XQ0:Y%Q'6&RH&[R%"P*5'8;1"I@ SM)Z"(=34$KTKUJ9K5,,BD.%8I(Y?%F,8,CH<;CXTX? M:OQ=2XG9"C;DB0C4/A4N=, KORP+/W[Y.1_8'Q1U4+N82\YWR.LV$P-H=L]C MU(V1)$'149H89=Z=P4Z4=8=T3Q/-Z/@_6R\FGVYGME[,T?%= Q3J]@OI=G<[ M'@-X-AQA0CNO+&D6YA@709#8!?8[L]@QD6VJHF-C;E%_=70#RPL39?_^2541 M#Z;>!\#[(\&9./9@%^EJF(AC1W9=/+?AFD@D6=U_IN ^4]D^\\DRN.C"_P)6 M&C;H#6P$-\3QM.S=V.'(L8E=]@-TH#=,7@1\+"!Y0;(ZC\P,FRF%%[RIN2KJ MR3*[KH '@38DKK@WV^4$*RZ9Q!(-4Q^YH2*"J<@(K-TL5[GA:8+^\C&']@33 MR3A5%Y'B?M/S%%V'7Q;1DPGEJ9&I\W#MQP1BPD=[:$C?&NBGIS\C[@*Y/H$B M2P@/=2&-2,'OW_[I ,V2#H(D@XNF'2 !=##1JZF>_7(UL-'+W[K551U M>K1N.08H1$(BK%&Q-VNYT1_?0<4OUE47GWJ:Z<[%*CLZU/*,/7;.1#?>J!H\ MZ,5W!0J(HPI*5MMZT5C%\B3>]^3-X]>V$42+3#(<_N!8EN_U'_L"F..:CJT- M-K;(W3V+Z\\C1 $?K&]!G<(((![@/?2@V :Y)22&$82%(38IGLP M19"%>\H&?X5C*1>ED%,'WC1)$JCKK^U&A#8D#K#[*@SRS#':!AZ]KXS67G26 M+/G9\R"I!(F6%\?2@"K2QOSX MZ4A1EUTC00Z+L!"/L?>\&K_PV_(W=/$B8@%^WZ1+8:U3]PQGW;/*N?0BTOBM^($R?T?!)'8<4C(-RR!G=\3+X2%L[^5\;">+%3ZE\E/=!(V/ M_[!SVD7.D'33.PR$!KJZ<0.A;Q82=6-XY8)4W M\1L8SQ229\!I8.B]5VS\J0^CW^K!V.]9_%) MW5XET]DQISXJPXH2G]4+W5=3)\(6$B!]8HE]&NP[[]Y8/GA)C7!$7=K*S-&T MB:297$1F\6ENIE8K:_[X=8$=>Z[G;V#'(EU9JM&=>&[F#)JVU!BB M%KN^\([%XO*]RJXC%2XJ1KEUS,5U#1ZYO/4]\\3?L*?Z"Y?:=FVU@ M6SI4<]K]>)%N#&?9>=\^RL^QI93=M4:C?$6'G9V^3><>EN&ZU%"(A&8\5T7P3\3=P]J-=WSSI]PR:XT M1^A_PX&SJKN'[0?^QO: 772VGIWKY[D)(G[FR0W@P1[&'?HET6 ?D\?!((>W ML*>Z=T"^$\#V )67T^"5X,+[IO+"1-9(%%LUL+HF:3\D6P _21LKB%J0]5"^ MKPD9P?@;_.^!+G^BEG\6CYU2[P7$S\7??2.]]-0U!CZL-;*Z9=TQ7;><*D$F0M9 M0%8;\_U65[ [JH(NC^C$NJ=7NN%^A$$=??KH#);@S*4.+3CF:<7W*\Z\?W^L M]2^V?WK5J0Y;^5&'YC.QF*B'V43]6;^O,^[?,&VK0_18SLWD6K>E%"9X45.B MZN\.2U?X&[BO\TF4RH*,]S&)DCY=J^ -[#VNR D=]A6O':I=D<2>U[POI(I1WIXSP\W_#8 VA6)ZGDWKJ@FG$2J4AQQ:_NQ,^R9Q\390GP[S25'Z0:0\) MCGB%G,7CJ4#&!$^F>@1/'.1WGPU O'0UY0K9.#&8M^CXONMC=81V>%T##E;IH%7U)U66%:IB@L@B[N5O^O.#!&=#\7.PW!L:ENW? MX@0C@+]JN LE2>?>;1W=T"&S78 +0Y;EY[/O' 0HV T'6[ 3\?>3T+SL\>TK ML)=O8H-&4L8%^(SDO[H9V*ZZU_=/*3224 D69'>]Y+JBEWI-#(=LPB-A^]U$ M>U$FV04C1QPC[TJ*>Z9=A:NEY&1R>\#JYEMY21)>-I9'0?@>3,@W;NXI@V? M*'*>.L([@==O J1UST5W[IZ(SE/ZVM8&&3IDB;BYY2.TUC7Q'VJB+^$A;IZD MN3T:QR,ACUO$A"!X]M=1C%U ZCLK8^L M0(%$,7_"R(![4Y+W"^&J2UV!*FGD7%^2X*(6K$F2X)ZR"UI\7I.UIZB/RS8D M_0R$"2"$X>6$D(2\IQ=Y29>0 MOXCGJ[D7;CU(L4V/L-#3.!^SA$@FYA)Y=Y>>TC%#[L;ID&$(9<,(5=W,&#]G MS.UL"VE_O&&AG_X/__Q&,HY_L,T^?0))6F1/2$*=PJ]UQ_XIR2LD[F9H^5EF MKGK<+V'JU4%SBX@^KZ;VH4D^R^0C;(+G]TIQO>1!Q;7_[U\I-I'ZY_D\GI5E MV\T V,_$NT1RV-F<)>:HEVN9]K CVPJJ2R6L!!>RZ/ *@13PE^Q$1A*W0H(# M5K<.%V@^%+!>3L0AMHC8(+KV$".#'4N8U?'K(BGO>5RS"MY)<=4ML/:]J"0[ M2C>W_*AS!*=++5\F.WH;PWQS?=P;BG&5AL-..+:[+K/-J1YO%B419VLDX/X299'7/^6"'-3:"Z3Y:TNSRW^[\ -2T;<6Z!.$ MO06I\%L!KV)G6W543P1?5P87T@.9:C?1$WK#S(Q_J''1!08U&?[#AU7MHW(WG@3O@@1=7W/K M+F6L0$U_=S5-/!SP-G?T]5,85.7=R"1)5EOJY@S_"6[SW*1"!^%V*X*X!4'Z M_GK.I"#"UCPI]H?Q[HQ/:MV1EK>2K+Z'[M[;G^*="F)-RPE^V"WVN;K077?Z MXW%SW,7H[D@*PDTI]4MOG,&WHMU'>U[J1I-=;I;G$!W;G-,<;^H3:SUL2'6Z M+-G]3K%8;MYGX43QF#EV2QB0&A":A[:]D(E[+2;0Z=]6I[=V0T C%NA1.JNM4(!XA^#G7#(X;%>1?I=CIB[&93*Q,AO6FW MZ'27723#]9XYS3DK0$B)(YD[!/0BU5#T-4);\VK=42\+ZO%+O^3>U/;"\26R M%LF)$;D'Z1:M%-T3&H772$+BX2G0T_&/6TQP)_8/@@(+QU^ >JOD]'/76\"F M)FV8LN)%_%^X(.H=E[@C=SR)I^?X-T4CT3-=%<6DR3UE48@DY8H47/*/]/:/ M0'1R"\>E'NE4+BGZ$DZYILB/:^V?K>R') C MV]\;>4.>XYYU06$%F.ARXM;M@^%P=!56L"\O^A4P7BY.\.V+$22"8@1!,8+/ M+T;PZOW2,QI\WIUR/&3N M\'#-W+U-\.Q2N47!>?O8+5:]GU&PK=6UHU#=LCAPV]$93;WZ+@O>E*% H;F] MQNKL7F-U%:U_7\(O(.C6K?:5MN5>J3QV\]W5K>Z/8"Z] VIKKW*=B<8\J?I* M#)IK_R .$:+D[WT0G M"KSYJ6CASD5[=XYX-@HTF!A/2/4?OX;ASMS=9!B7F8[NK,=7+UO-+6-L$Q)> MY7^R7B S9ETHR TW=(!=3))=Z1E-HP\?/THHT[E041LR<"X_H2CS3,C1KF<8C#U[_(.3L;E3FA]U^V$'&9-VC MN5H3CTP^'ZG74X/^J!IIT$<5QMKY\+'-\1"Y,!X],8QQ)#V-#^H!0'!J':;O>I?EI26$7 M#,U6["8>>;#Z5K:Z:@A+>33+)O5E1-\4:OD4//-@]79B6I2EZ"+156/Q2'(\ M+3VF(O#,@]5GH\:J;:;%<+?.S_2DH;56W2J,/%S]?-H;- 6T+-*\Z(B;"-JP M%7X)0P]FFFLQZ2J=BLATN8D&['RZSIDQF.DAH::(T:9"E)EQZXDTJI1G629> M20_CAX2JQ&G3[/5[#!=>]'M\G%_-"OWFD'0T?/9ZR\EM4L/2FHO2;+.UL12$ ML)#$AREOY)GK4U1T7K/ G;$Z4%\.>ZVDJDSKZ5;_:P4K9*T\>(@VA1Z='4S' MZWC!ZG:[)VU6##2MK7QH,[<-M_2T]M>_7"\#-,M!^WG%KIH8[^*!%Z^J -4(.;;+[D I1;< MSB RLO8*0QPM 3'!EC$,!A"&NM7*W6S;M0$^%A3\=8AM9FB8<2Q.B=@C(7#- M*YO'"X+IH*>N&#ID.6(W=.X@XM3O%$'<;M#3ISOHR+N5,,)&#JPD4&J;C0F3 M('AC-T458)L_VOLR;/ V:12F 1FBXG[ZZ!/,A-$NC(#'8'[UZL+"LM;(=G$K M1DRJ;._T^=A. 0,E>^(M&VX^EF?"K..#FE MY2>L;:GV'UQ]ZWKDV%%,V5>2V),3DYWS3;HT(HDM-WK\8^YBA.ENANRBTQPG.#9F5\7:P&[<8ZOP*\K< M)=]])_ 3NIV^H**A_#HX6)#S"[4_7RGX"=Z$AX.?%?4BGMF3"GNE>">I; [X MW,?WVX1P^_5RHP2*&[JN[+\)L3&9+RL3'*Q4UXWO3+,VOA0I9& V"$,?6QV>I(P M-KN$HO?I2*OM4O?"4'N/!^*@$'LR%^__SO1 MWC_=F#14('HS%KQS^KL=RH\L77%L=(X8,-[H^&L]"LCWWK_%>P']/^I:'[E+ MQ8)]N(9]B++!/GS^/B3OXO%@'SY_'P*]="W[$ WL]!7L0^*.#?32%>P#UDM, ML _7L ^!7KJ&?0CTTG7L0Z"7KF4? KUT#?L0Z*7KV(= +UW+/@1ZZ1KV@;U+ M!/)PNGT@=U#V+V$=9+/SCJV_FH[_YF'$Q4@!Y]<'R43OI3D[[\2OC'L^Z79-XV_WO-LDL8*1/ MEKG7+75 JG>#_(!4[\;A :D" 0P$,!# ZR!5(("! 8">!6^3.(N=5H.N[PO M$P0)@B#!]0G6U0<)_,KFKDCI4A @N#XF2MXE$]?,1)Q;EN#UN%T6.@:0WN-Z_$L0$)*D:_,^ M.J0*3E4G57"XIRHX+E9?,O+',RQYRO-OM.I%?]=N+?[W"Q>D7 M_W_G7,Y;A2+^..9""N_LKH]YOK[W-LPX9V6Y]S3RVC:0]PM4Y74SISLC6W(4 MO[S64VFF;94YYL=32==$@JW&.@^T(YBQ-==U%J(&)569'[^2S&$#BT"&SR?# M%];<9Y7ALX>8+R_#OUE)[3\CQP?JHOVY:D-]GFDF0HBY)QV2;ZR4? M(L.V$)O-:XER<]B8\+,)5$A/_?C%'/;A_#N0[4"VKU.V#VTT:=T2_2=@V8!E M3W''^P9AY6\48[^(9YA7T2#>2(S&W7(XNIB+M9J6'0"BC,1__(J$8LQAA_A7 M UJW&K>*I(XQ]'=P;:\^"N5'GO]XZE\_XI0<5OJ#\.:^&$]PJDF7DW&#-HKJ M\O)Z9:[5-4MS.G5.;=99SLA,!B'B%,\P;[+4PVD[PH,_ MFP&S!'[8XA?9[,INI8749?MKE>3^UEU/SZR';?-,8(&[>\5LG-/G,C)2_W7WCG) M;5]3I]LSDHEH:DZSJ?+8R*?93(-.'VO^6XGF,OG($-W/>+N83E8*R[R2&..1 M!ZUB-TU]OJSD[ P7E9AA+A-FJKJ1/M;[MUQ_;-S74VFGN];LOJ;P6K:HIX_U M_HU/,G91TC;)V3PVBX\E5+9H&EKJ'O1TC5O,O),K.>$9*RA:34#&(&8=;?T; M[2M9/A:5JMUZOIUGNC5]B29'6_\6'Q;W<768CW51CGXH1<7.O:$>;;T[*1B; M^WX_DZ>=^D)?)@+>XFVB3LO=+NQVJ1!'.]VNL/:%YG0)D[0H:VJ M26D(^JEB:[,A?9]+8)B#]R<5V1-=M-S76'YG4]+ $9KS"=NNBJ0L*OZB*)O0B%'A1[KI M-C+$3YH@WIW&'2;-]='^N.&* 7_"P^V M= T_>$VZX\J"V[%-T+UVA- 85T$VZ9,IRI:A6[S;-=AV[LQY!$-EH,I&L*[ M X0E;T7"1-,5?4S:+.(78%:98?H($WB&UV->Y==^RT 1J5Z'1?PGW4+;5K?0 M[/*)E;#T6[*U[3"X;8CX\[*] KO6AV]8Y(!X3^E;/LW MZ6)P971/WL6C >$#3?-]"!]HFD#3W"+A3U(0XTUD>;ZU)S^P]C/8%S1!?>W2.;>[;XE#1HPR2A*6IZ@O3 MD?213&VP[/*]7GW6[FICJ28^#AHK.+UGX.))@GY?]E8@D8%$?A&)/%_=D/>* MY-S2UV/$=(5NN;,L)M7NL%U8-K%(LB"2<>;-E*[WWP6[A#GOZ^8L+&MAP]3' M)K*.6O0OJ2:N3AN<\@K7%Y3\\]MB$(62UC!UR&PY(OF%/*N< Z/ENQG!\Q%$S]J!<3EFUUKF3JT1EK]8?B:E!' MQ55SR)( /4V'&#H21 4"&?P&,G@!X_Z2$/;*RTI!'!4,#H6'V(9[UJ=.1SW)I$Y\:_1W],-GJ262R+N3CRPHB#=!D"?_P-5' MA5__)/O_[)Y[-'''Q(V]FW,,7%K;SUC>>>[>P\("4I17PT]_EO/\8@I*-/8D M[MYF)0_3FN'?__V?O2SM ^?&4U4[Y/+($"5::XS";A(X+^'7_^25);^V?.R; MNF-\+?ASJ^T8PD0T)NN_J9V?@0@'FZ3RJ_ .G?:YU?W:_DU _\,WDM&]/;9U MXV('VSQ26IY,$_;\5^>FIB@.O_5J6>/:8@/R33Y(E806)TJ M>U+N?;3#*$ \_'YR_13NQ&9!C6NVM946_FV)>;XOQ\B]O:PO)#OCYOS!B-&H MF4VK#*>GQ>71@@HYIK3HI01.FX4S;JW)T+IL^5E"!;^J;:KX_W]!.^('3 M8DN],,\?+:@PR)6KHJ.N;$X=]W))KE&<1AQFVQE]-"=U]GPHJ*4HKEP\UA!!:8D2:E!U9:Y]ERXG^5T>RCI M1PLJM'-5.K%,/4A=I\S9XU0^GZISXV,%%?(;:Y)6]5:20Y$I&]D4%ID\IM*1 M@@I2/[NNSPH/:<[IM(V$F5OWZLQPFCJS= M#'.ZV:F7NFIX*0WXB"0RZ>8P>3BRN2Z5(HG'D3S+YH7F?5;*B')W.4P=CLQ. M[5)ZM;"XV3K[4(\NF7A[PN!]IP^'IF-)J2E5V X=M2:+>+X:4]3A;Q;K L-TJOQG#T ,^ M621FF;[8BC+=>JM77;1%)U<:I6'HA2I:-$S=P&9JW5!XS4YK(C=W9$/%>N&U M"A=<@>YJ!3&=[?;CXZ[%QOG1/'^JN^JGQBHOIV/NPGC#1.1J$_Y&_(ZB*)\N MI$#!EB@A*#ZQS=\\>V&,O4D@?Q+/:F2X]23Z4)]!IN%03=,2E]J5%0A0 */E@6@IH)F(^@* /42-A[!"F;8"%O7 A^6Y-W8_.E M((&\WGIZ#7@3LD;YR238L[!EQ2\U@>ZH%Q;C56FP/J=,PXOL?\CTXV*RF1W4 MA&[7*;7MI M+24>[,.E;E 'VW %VQ"HI>O8AV]3R.&ZMR'02J?1*!=SR$W M1Z*0[V> JZ@"P%Y5%8 /4O 2E2-.SS G), UL%#DMCGHG&4E+J9T6?+("J^) M9TZIO[T.):?+L'\]IGACG5#?<()OO9M)E!YZ)U7#%T^J,NO.VD#IE6QMQX($ M50DJ&X['@L6V)HW:3)ZO[ONEF2#U9K_?[_#%6;R4GR=WAPE=#0\GG*Q.(^-Z MLH6*K:9;Q8()8::_]&V:[RSZ9[UY&TC^J7-I_U#TY?0J53#[\2(G9ZO&:C)= MS$>#\>5$OSZI:D8QK@QFA?1XU*@+C_E:=>Q6RWA+]'_CMLV%44K&D15X@]L' M0U8-4U\@U4VH.T6._^WIJ:M'(BDI.'],HFL7$N<*QX0=.WBPU7=(O*-#)*"K6[]<]D4/K MS41=YLOS<'OI%A/! LW&XQ>J)G)A %+EA8FL(?-90F7@/GV9R,DE:A%\3<7W M9T!F*UF[XSQM]U#LYN*#F)2=J:U2OFGK"4LO_WYSV0]KNVC5'&B%U4C@Y DW MM$KTN:G)AF--#$UE0$-PG M$9%)2;(&O;@I!?$6"ARS*T4NEU_C5U5J01=60Y7*T\_'XIJ@\KNP;3%^UZ7;1F M_+P??YS&NZQD0&T-J _'ID(,_;ZJ\8%B"&(UWTDO_&&LYFW%H->EA$ G%]*, M?9Q6QJW>>J;?7Q %/7+WDC1)9 9T8<9D'^)U5FLM0#% S3HV$HK$7W-\KC]D MDW=,O/U00P1.IB1,0/QSD!9S>P@F4$@G "I;:<#C\IXL>(HHIO1S[*20;G'S M:HG/I8HQV6A<, S+/'1EK,>T5QA/4[3Y:*6+F33PZ378HX-4F%N)?X2R/!Y M0<4K0CP4:SVS9N?'W%J8/.8?=*W=GU_0S4C.5K0II^[Y&>N,^KHLMCE#!"$F M3>G8Y >/?VXEI)+55<.QD>GFWUJZ9"]Y\^B)4. _G2RP\GFM.3[-P;JZ1AW7 MBG<@ NT+)1[2]B32TY+%4JD2E@.<_PT MO)#4J)-(/EXPX29:KB4YE9_WNC*WDL-2+:)K9A.K$G*OB8F\%M6]YN -*4;[ MXQ=9-I1Q/5*M-7#_@AC.;6JBL[4)^K#Z6%5CD=Y&77"SPF SJ#&TOK"38RAZ M#FDO23K$1,_5-^@;"%X0=[DNN3M?:Z /"YYABD:-CX[FM%,JE[5U,F\74Z3; M &2?).A0XNO%2MQ'5I!E_:32@N"HCD+JQHO(,#%920'UP-$)8B9?U],YH 'U MUVT!C!VQS>U(+?Y90? #5GUI5<>;M"&?OZ@6C]V%3N?:&K?06IP3G[9ZB28] M+T?3T%0%#H 8.I2,'Q9I^#O0%T%@)% 75XN+SJ@O!GI17M6E6IE;\Y''22O9 M$\)YHB_@K"G*A)C48?#C[YN*?M20'<0^@MC'E_+!3@Y-EA/Q9?<+2U &X4>@ M[$YGJ!+H&=(7ZHA:JWDGPAF+GG=GD765E@MZM55>=JSX\ QYM%B7 M'M&7V2B7C,SBDL$5S'MZE,ZSD4FZ"4UD210E% N*W 8QE$"A7$MRR;LT2I^> M/SS&'M&2"U>M8M8T>LFYEBO%Q5B48A""S$L*^= M$%]UE"5*GMG1X3KT\3B+UV,Y\.Y^$S\Q6/9%W8%^OY^A[XX6_?YSC7:!55V! M2KM\ELIQ!;1<9.1[(VM8CNR?D?T>8\\E;^>;VW%;, N8X;VB>>F)__Y4>;)QPUB$17Q" MB PQ]H\-8^R('8ZB='PHCD0&T4F>CR12^)W_X3_TC6'T-[[#[']'3#"(C8KT M,,&+:!A#" UY/DX/19Y%L6@BB9 X^O@WGL_L7=]Y-C,F$8_%1J(TI"/1Q# F M1>AABHZC89).I?!7XK%47/CX-Y[/[%W?\6>VQW=[:B+GF.2@=1@9>K:]H^\8 M^N9RW-+J5GG=E=7%(I:,3ID->!K[NB"'1G9.M@1%MQP3=?"S,XHNS#SA'PTG M0Z,KU>F[@XK2/($9%=B MPI$C_01!,CP]S-X==GJC8(%$+/Y<8J/1N_BK$^@C:L*+5X#@XGO6(&PA 2P" M]%^VD/:^^JB<&JZPP8[GXHM/=W#>6[>6/ M7U=@]DZ[T/&$:0U[JXC5C2;J;%EKF2S#I'_\TO0C]NW9!WA6(YO2'=N"=6,F MIGB+TB6J"LUO*282HF#SB$?J=S;U/HVD[O8TORA;AL*O?\J:(FLH/ )YW$(\ MVO5S=_7]R4W1<[:N:U3:&3N6347="2=#5!8OV[&H2B5+D1:#2*1DS=8IGGJ/ MQDH.HV2/DZ"RGGZQ3)M$3R# !&DFG&;+MHRLI[L[Y*U]I"@3Q(L51<#HI61; M;6=DR:+,F_+V\O0V&(-G)MMY7B!VF]=;X\JHWBJ>X6IJ M(SS^\4N2%RB\1KSY''%0^ VR;N+_" Y0FX?J>^$15**A3'\EE$"60DG>6JBE M;$_PGEAKS)(")BEPI(*@X*U[O?F^4=7-,>:][ 0_B[2=R%@7UY4 M94W&*R"-VBE^C-[MZ27^%;C8&TS]94\0 M!9@E2O^3SE0HE_243WORE\@_?]]1'3SNR ([2QD$7,V3./_SJ*!KI,?RZ-I MHYV,M76:9XR$4K^_[XU+RU>4X>L^0 5O2EUZ]B9^):N.FM%-4X>-R_+8'<.? M']65?-0QXO'A:,TYC&$,&";7?KC'NC(1OZ,/E2/628IW]KG#K+JJRC9I^1&B M'(/"ZN-K[6@%V5@U^F3VSY3&T>$,Q>L#;FW;K2*BY>CD6:G,BV[D2EQ9\U4C M4N/"9IDVI:3=D\--[-F]NI%8CV"7'6L!&4O^@I<5\.^(4(*$@R(@U;2)NK%) M-07\HZN=[JC+F*V75 BF*U39H/1G9BW*N&I'=:E'\:KN8'UG3WA[U]RI_)H: M$L#^^@2K90=\S#A;BP%W\/61:\%[XA.8IR M)G$^//#];:V:65F/7"4?O^>RD5*W/EQ-T^/.:;5JUC%-."AZES#>%Q[FC<>& M&9EEPV9LHC7GA?O2^"VM^K+]%[R7W5U&Y X8ZCC>Q>!"L2>Z,R;,96(^@W^^ M'*_\J3M27UB.FJP)G5E=DR?5W%!0ZOP%_*X_IE3>B-#+:K6FT?-D(E%4$@MS M;)W3<=-Z7+3.AAU[QB\JHTVT/AISC>4[';>M.K/VW+=7E7N(_($W# 7#:E# MKDR $@<-R3FF+NJ*PIN[3U]BE/S.O3.PA1JJ.>U^O$@WAK/LO&^.V#8=<\K+ M'Q\) OG[U;9PJ!GBW4P644XHL;*'1![79+ CX,A=0U5\4LFOB_T6!]T M,73:S+))?OA0XS=\K+ '63X2?M[WBS*\)5MMP\1HJZ[M3C.RW>EP=&>KN?[] M6E!:_2X]KXHYN;ZYC];IYKN%XG<)B\4"$_:(D/P999E!O+PI:*LJK=J3'%=^ M?&CO"(])&B/ZR-VQ&C;//OCW7@AC]S0'3R!, MSG-^_*(,Q2&.HHM",.@! $&9GF.J:RA,$01I(A16@4Q4I92IM^ZHOFB0W$[.,U M93%Q=/S*PW!LIV _C"NC5JPK-S9U[5%$I>2#I\]E_"0Q;;\R;@C#(A<)WC+L M\^ M^>1EZ/#?T=XL=A_\ CR1;!!KNA"TE>X3'X,^Q6(I>3[J@&MAH.ANX6 M#WV)QDC#?U&4-27JE*;;F/D%Q1&QO !IX-TFPIZ,!B+C@GM+'FNRA"T2=EL, MW;+#(G80%M#)41]A3X&\!6#_=BX0;XDD_L&@W>0UR].N=6- M,3WBL (X3?@G2Y*1>.?OKDO8G0?#T\#M<(>N7GMZNQ=I]&2$9<3!-)"@+V\+[PQ!BP4K0R/*=NA"#B*MN* MNR_X#6@E3'AM[+O?.E:IV_7XJ_!=VWW&?>)),K&G)<(?>%@3YBEMK+RX77@" M7D2.XL=8:XN48Q 6(HS\; 9Y_>"-JJ/8LO'B\RWB7/I\N&4FGQU?VG3?GY:) MQZRXT4L"['@%&QD\)>PWX2TFG$Z,BR=A$%3%+BQF+R)/A^RQ90I@R!?F3,F$ MN=9DC*QBTXTU J_L\@)6-SX+[K,&^<3;A=V)8:%S@%=(],)]G( %W'7)1[!5 M6^X&XIXKQ.*>:I%UC&V0/82(9?HOA)P7[BWKSO; MZL9I]D23O'MW5RB#7UO>.O#[GC]AB5UR$%%@,PCCP]^P,K=VPCV8#RQG!.QH MRT2]$P2#>19O6X-? W3SXBTP ;Q2#&$(7RUXB.\\N__HO_\5E)4/"J(&MG\H]_ M4$5R.Y[E5D03=PPY+,4?35Q;3@" =XY%T_\&F[_SW+V'A04LH:]>XO&?\,?I M/0(YOO)Y/!KS\YBV!C_ETH708>??__V?W=D?IEQ[B4D[Y/+($"4Y2F,4'F%D M/@OS$G[]3UY9XLWP$V=3=XR?\_1SF]O$$"!"8[+^F]KYF1P&/M\DE5^%=^BT M?ZSN?LW_C(")[8>Z17CMIZ\UGVV2M\>V;OR,1N[8_?V-1>X2\8,M/DE6&?.T M'?_E*>P>8 #^KTX]>RS9YT/XE7P1,SS6XLH>HO4^VF$4(![@/^+N8ZD"P YA MU*W[P/_:X93C$O-\7XZ1F]]6%BTBO5NIQ?FN*HM3;6IAUR*9!F]C+YT$CT2# M9NRAVG[H=1TD%!:U?JW-ML?#Z.%(.F4^U+.6-N7JCX)58+I][9&#D-9/CW#SZF)HI%@KSLS$>>?!V MHU0KF?&3DX/6UZCAK/(8'N1G_H,*W?]T>64@7-2@]CY2[?"8OMUCRRU%7\^Y'7 MIVB63RP,OM]5"X/1III_J$2SRV'\\/6%M3.>2X^;Q:P\Z(S2 DI:BW+3[;SZ M[/69T2"N.OD,W5>7K6+O(3SHTO#,P]?3V4J!1JO']HQGQ+[*WM<&]TX@L]<$@T16PL0S>97"""T GC>]P2WV-I' O!] MP '85F,U@NTW-MBR[7E;8QT;/TUUN[OQ#K;X)CFG))C0QH8#.QD3V3!(G@E& M"1C_BXJ;=&+I4)@#G"37U[!'8);P)(AB(R?U<#@C8:!"4 '@2(P=+!OQ(ED! M#+"0P9.PS'&,2Z:Q7;P'\:PG>+"Q"3>(( M7^CL H"M;/%C[,:,=YT-DM9"0E(4."%C'ND)?,H0)@?(+<;K1@ MA("N+AJT7<\S[4#JAB+SKO,G889TC^T(QH(W6F# ]D,8NS00P7_V%KW^2;;A MW.F(3V_'CZI+'C@E1O3Q<*P^G/FQ#4\R_( MB_VA_,C2%<=&YX">+U_JV$\M?V\>^:X?\8=76I*I8!\^?Q\B=\EHL ^?OP_) MN^BKMTV#?0CDX3OM0_R.?O7*8[ /%Y.'0"]=P3X$>.DZ]B&P#]>Q#P%>NHY] M".3A.O8AP$O7L0^!/)QT']Y3-9-W;/VCQ<'>C ->94F5DRS]+21Y,;Y(&D?2 M,#](&$P&^/#__8A 6O )J12C[V*1B]:/V]8+.);9<9RN+R>=0J8GG/F0;&V+ MXC01B6[FL%M8@(F$_ I\H]=KI'T)<=OYWD>TT2U(WY%CP?>M MZ/NI2.:S*_J^[FAZ:KUOA[/N<%">&^DE$ Q!T]8ZF;;S;'9NZ7J_=&[ M:X>:4KU9+?98.EJ6PLU4N;^J&[]?1>^-NUO<"K*Q,?W3Y$X!$CO\ZDAQO?8] MXJV'HK+LLEHC5I\L6E);@41'YL>O9")$,^\KAWG=,O&AOEA7I"'>"@E]F!JI MX+GURDHN]L,^))4]IJ;"M@'-Q2Q>*2>:S-'_-",]E5651MT(HZR(P@ M@SC^XU?\M>8A9Q&5"W<1^7< !6Y*[050X&Q0P+V.SVQOXW]0;PW,9'F &)7C MPOGXG%&:@E2N+S\9"@QR!:X\SIBC;K:M/'32PT9AD@'=EL)0@ VQL<,*,%]+ M)JY((7Q]RW]V"3JQY1^-Y[/TLC28+REK(J\.2>3P2;_F,5*KZ2:/S[ MU6#']<EV4*B)7HN"?FRR28VM>YG'R_,2GG^OLPN%[-" M;3+(/M:T^Z@UQGHJA>-8!;H<8033V-5C]]5# #><]Y%^OE1 96(20OULU%2V,C18[%<7G&JW1@M M>]$2EVI %24(9M"A5.PKA)=O.PGC@A)X=4#LTA)X8E1F2)U:.Q[1\EUYZ,1S M?8:?TNP82Q?$2BY^IOD)VCS(Z0A@S941)X UOWO^?5RI5HJ/\6:9K8:[[=BJ M8C4C65Z6/_N,9CF5EFN)OS=F#C\;]U(/M>CC#,I(0O"'"268U]HV![ F@#57 M$E\ZD02>&-:8V:S533@(T>7BS'B<+;EP)I6&TJL0;/J,M.UKLG6WF[ 2<3OL M=O0@8>7W@J'[;,A@-A1U!VI=?@8?'LVS/0%8NL"RK@DMO;>:ZZ?B'78V7@@L M75IRO+VJ/-JS5+ZL0^5H!KJ9QD(1)G4[1P WD91R29FX.OSR<9DX,0))--+C M>,N.%;DZ6RZG%JG"/&M"3?4XYG?Z?9&5$P10/EG#!VDJ@7'^WL;YN2,UCZZ9 MF%F,3V?]=33MK"ORR.M6TY%V[,L$[<6,]+&)').ZWQM*OYY M'. _I.W!KX,^8^=H5;.Y?ML$1)'B,7]"ZTHD;MN1 MC'C%;<8B4?]WYH[I;3N>;L:GXHR34UI^PMJ6:NNOM?%^W8X<,QX5F7=W( N= M8+3CW;UGJ7Y=$S;]#->?CJKCE#W/9O(O-":F\.XH0 MH'\B;;C<=:$EST(3^ M_)38Q^PU!M[T6MUU H8.JZ;<2>NJA"=V"=MHMPJ]N:Z2E MUQ/'Q'M&>ND*O#6!1^ %*FYO&UY&0L_KU * MTL;0EDFBQM#%B?3'A,:Q;K-(TBG*I<&V_9#E];UT67E_&5Y+4[6P&1L P9;I^[--J"A>\U3KQ78T9C=;JY$CMT87O<4^;RBD42HZ\&4O2 :1*6UBP-N<636ONGIEN,!R"='$JG5 M@T'?.+;-FR_%5K%=/?I]6^\L:R311#.LY&#'ZACX=Q[0.X\?N5W%D=L %"6" MBA*"17E_>;'[87V3N(]1R-LVXQ([G*QL@L3&^;@#L'EP@%8'I .O7J/I)// M?3H^/Z._U$\?D'\.6-L--&!^D--58F=J3T;,)50';$O,1P9S#*[Q=O!>?<@2PA:OD^[GTPA^B*:YBG#*7 MCG)R:WLDGWILZUDEMB[Q1'SORBSJ/+>HJ\@]^5:^RC^ .6 X=T,G?Q7HMWF6 MTPS-'SWI!#@05%.[ QQYY]J()GTYEZXF=A;:V1-&-BFTW<'I[]S7DWJ^P0QM MMW#7W5=/]T&A52=-@[_ER&4-OS>#$9I#;-,7[*MO,*AV&(XRM#) P MCH)#1.,(:ISA#'8%PPE_J"PZH.GTGNGQ+TBVQM&$?Q).0=);0.$T01KDN8'\ M0F):_$ C[P1MZ::K!WV<#DPSL^//(SWF,KH,]]$&HNF8X21IE_7%'.A70 E[ M?&\7M%MF/$ %HXL3=?2C=[';.&P=MYN[[/"P._B&@8695.!-TL&JIF:/"R[) M]):TV) H8%=Z8,FA>P;#ZT?XM)\/@,*=7""T+9AD2K M#0;6B(8O*L!6U,(6+Z3)CD*(\*<:)HI)9NMB;J%AZ>-Y ;(#_-A&5,_C.;K/<&$=-D*)1DT.!HZ+ MF"5!V8&U.2 .<>/@.*-^DL/BZ;%9I1F.W%1TL+RZS).0Z#,-=;JUTED'\_%[,NOR002*<95H2XBD-':V!+,10 M*<%KMLP)I)*-NM/OFWY_EI-BEF[OSZ[WNI>YX*?>R=?O>I>7ZBX6593G>7RD MHK<$'+.-RX7.+[\=L6NFM].?G=N+X]VNB#OBMGR; "YK",FTJ*> MX8\/23H^4.SZ30H7C]_9((!,+D4>"JR+[JF<.T"X#445#:Q5F$EO% M3"['C>O,]0CTA%LSPW1&2*%,CXL6D 5]E+G"'T5Y83&B6@%LL%5)$!(L)2P M5KYI*3@$EJ0^UY0QWRZF(F( 9=PK#N!>$E\ *$ Q&*]&!IYH,<\CX_<>]"Q: M-#04EB8&XV-(&9'6X _,*L<=NMR2+QJ_ H2N"Z;/>S1Y?%1PX16&^,D(2#A+ MPP?)[2%\&KA'?PZ*='A2O+!'0LD M;#)",4&F3F"!'M)UV$JHEF!G_'MRMV\#4P22^MH-7@!*$#262?.1A84.%P%M M"XB+X(ARIUD!DPC7 &NZ.2 "(<]Y!SNV/D*)!"RGG X8:K$*8KQB9\C)30R&<0NT(7 MPF+1B!8)(3D*.GP"4>A[\T,8X/&"3@>6A5L"4B9U+;6]@T.J@4H$O496D"1W M'4=\<&LI#J?WIOF!@C#U:P5%O@R88%@ .C::!1S&N MD(#(G1 ^ STF%!K1#PO]S>3]SERB+'"6.$,91;YY\0L M("Y]9FPV.$TJIM^HY^ MPVT:KP'JPA^=.CZ;%R%JS^-9L?89UZE6#[\+&Q/,GAV_3G7M? R M=4E1Q0V@(SZO*#:%2;= 9F*^L_?),+V!I8T^4N)P[)WY2K90&B1FM1=P3'IR M3E/LN8F'[8#.MV:56B]ATM/,F0?YHDR5AM)0S4V.;\)___=_$L.I)NK%14HW M!B\!ASQE=[MLA\^^TCKP_H^:-=1&GMA"BFJV4)G"\E,QU(<+' MO\%'<5$^_.ORK#Z-"QX5LZ<;@>+!*[0247SQ58Q2$'CH+I!:PV@RRBI02"'[ M:/^-48G21Z?HZBACD*+H37EXN8'L")!V_1 M?S5>XJ3PF72])K& M[MF-=G#XW3LZ-8J#;J)JYC&%9"=F'S!F1!$.3-';(_#:SUSQV[GF^F*Y)^=\ M$=[$C^&.CH7]-3THW/UZ\&6G6=6,QD[AQ+KZYO_JWV!0N)S/3M:!_SV6N=&\ M1 7!6JJ58O4"ST6Z4*BVMZ.8T%ACMTI5;__%[6Q"7._OYJUX:[MWD@E_7 MG:.=P8_>^;W7 MRO71CYO#2W/7'_;^>/Y^=W[\4)YE:\JH<=T"#_FL0Q9DXK0;!DD=FW[>%5AU M[9WNT:!1WV^<'1?V;NSZGY\'Y=UG5)'@&^C-3=K1602*J6%'<'O*E3O]O)AC MG=8W\Y>^7W9JW7?_+5;FE(\H'%K$7[@9A<>]\ =\L_(^+"99:>IJNH!\%CHZ M%W^.]K_6OU=N@M+97O[JZ^>;GV[WL4R&H> )\)\SE[]*YKW..G0@;3K#-+N. M_EG/#_W7O8GO4&)2ORH6=H[.;SOZ7:@ZS$]7L9%'G3";8 MVW8FD.BH'S2NCGX?#)S&8?7^3#?^=*^+!]]>@ GJ^4JU6;:^YV_.JD/'^>59 MAY$RPM#?R 96LFO6IR$4Q8C:E3PW2#R; I$HT(9L)&5F31 MPCO/ ]<+-#M,'!R8KNY$71<,$HVVDH0K$KH4F@")M .1M0IAB@&14& M1::5M%TR$^4Q8Q?0[^$39%([(Q)'"9A05!8YQ[=D504&97$+IAM>E0GKZKS M@ILHOAHFI:9JIIAED%6:)H5B15)FLG!H^5)S:M5%5-'^+-45WBQ-QU$3."I^ M,]F;0P+=A0AR'SB<'V,B4SSN)O^M>C@*S&&CV]V_VE94?[PQ'NG MBN'O7P?:U]K>[\'-CE,]:A9NOUW=E)'=\_-2H"'-1 FQ,(2/Z<1[GD'BX=OY M=@NEFU>(]>GG)ZU\/[G+7U<,_/QM!,W?0'/CGP\;M:K'>,*R6$S1.W5S_ MQ^_CT<^NH7[[\@T+$^<4!C@Z)KM1)!F!&U;4T'1G>"E.=V;1=.>H/AS\"O#_ M2'IIBLA60:NHS-F>/'GX/=A02(O'Z0\O+': MNH4XW?KVZOKXYRO6;KQTZ+2M?GF%VF'<%;U-QX M89&Y*.=Q#<[\/$THKJ+"G(S,:V)=$[;2(-T7%OQ$]3Y9Y=21LH4$2JBZ=8'? MQ2DOGWN6 ?)0\#YN9JST $QR(7.-G7T32UYM@\R;I6V>SU5>4TW?F:U\UFRR M!PHY&6I :Z'M -LBI? Z82Q. ZZP*+"D\;RE(;:_P$D4#BF2 D*G]((_?ZKY M8N[DIMG?T;Y5=TXO?YFS[?]"+G0 H@_/4BK7^9^G7VN'/UFC>7BS^[5\TZFS M=D(+')\>/,TA"^D"['_R#O8%Y$(!D8L)B%JUW_QS^*7:OM)V3YW.#W^_>O<; M=$,NFYOT@O&$!-?P,Q4\?,\EQ;)EP&ER=G7^[/L\= MVH?FKZ-?=Z5S^QFB6J)@JDP^+UT##SN_W=QA[_OEGV&]V_O3 YEQC5H]S!G4D!#:1A.L9&N($)0?VB4HCXI52LJ@%K" NAX'D-<0H&CZ6I: -WN=AXJP")N9BFC$3 M?[DA5\<,_HJ5\>GLY$H=*92Y:-^-3H%QQD+UQ[8NV+*PE_,/K"_=ZM7U7O6@ MKYG-PU'QZ66T<QWT2@)[Y\ S4UGXL&'W;_>^-G]?-;^4:NS6 M,P*G@7Y4=G(T1,C"@."Q\RB= /07XC#)T9%NDU4O:/5*RE"(*(P$E<&SD#:X M,28HA$=ID#W7+8KGXY@<)7%.A0J;+\%[',=\V]L]WF_<.?LWUR?.#3NRCWZJ M-\,-P+QI715K[<_WV@W[TFR<_JG)DI8,=].ZS/X3)S^\?[CJ:O'SMZ5R:JPG5=Y$EG]AS9FLJ'CW M7P)A6/\J4I+HW:B53U'<G0R1WA+<<6&>YDUB'C%1?F12=-O%W;J-.KP6#1 3#SJO."LGE1 M+;I:<#.Z/K_\\>5/M[U_-=S,4[QJ+LLQ%_\WMF]"8F+GSV78694\CSDE,95E MKWF%M6G?.=8=IZ<[#31,@ ?4O %8>DB'IH>Z1M":XP+HT.O6P=GV6/R,0!84 MCZUU>:C&<.!>?AK%,MD=KR=W I^*S<,3@>%;J,J7UQB#C@*&Q1/%F@'*#ZYB MG0Z=^+7)P4_$ACH4T:+CQZ+H"IDN<8E,0. 1#YXK@5^S\ZHC5\PC#B8R;[Q.NKSQ3P6&& M@2H@?. D!:R8-C^V]4!R)%Y4$WM\TF@TK4"W M=W/P9Z]QV+L\8IJ^=W%^/ 2++C=^9:?2\0^ZET&E,>H5]WY]J9V='N6_M8J3 M5_ZR@A_EZI7K-\H_[@<_=VQ_KUK$4=43ZSR^K1Z=E%O?+Z[J![6+H]+QW5W^ MZS<^U#IY9?NPD#LLW.U5KS7N3C$@6D3;[]3;;/[[?:T>!58_5_V M77/GNE#%'L435Y[;3J=:O#PZR>U\#WZ?!M7RE_L1-DR<6.?E3>=6-RZ^!(VS M<_?RQAK>V5Y]R/L>)Z^LWW2_YW[53XV;9FXT8/5!G34_?VM5ID IN,@-OWZK MZ(U#U3CSK\^__>X CJJ35UX>JK^[G.H>?\-*\(G M+KVXOAOV\U>_ON1&[*1^==?_=MK2NGCI!*"L4N>+&7RICJ[*S:N[Q])0(MG"<7-^XV"TK:T M@<<^RC_B"R]'O4:Y"LW%ON#Z,S>A]WQ7OD*H1Y6KKP?[HW(3X*$)S3']$GL^ M!K@[ #)9$2$_DY/XD1L<0]CQ@XI>F''T8GFIUO8F#N\)<7#>O"@9DLI&EX>#=5L:6Y'\A0/J5AZ2WA(Q=)&H*&:+5=2 M/"P-#U.&WDT$N+3 =^:&Z!XT8=<&BNHC0/' B,-YNWZJK-YD.,"N\SHEY//94G6M$Q[#-/2T(.]TD,U.N*$OBF5!7WE94(/*@O[==I5__AL6!_'$ M=9AK>ZU<- &;U\162R::R;J&:402Y['\TWALIFT":UWO8-4E0Q"#7A/02DEH MO22D5K:;A-3:XZ7R X.,7THP4\A8\V&!JQS'O'YS11+U*D=,SW73-G)"XK+V M_E#(9@TC!).R*R7=E'27X]:_&.DN/A5^_;JBS'7%0N5D5%&>_T2)M*5,HGU1 M3W=-DVC7S(_+F3/[XCI@NV>\ SL=$S>=Q$_X1P-B;;/QI=7\]?ND4;^XMK\% MA^S$N\ Z%9S>7LW4JI-'2E-^>\W\]N**:[O'-C_$;VSPH]W_4?3/K\K5Z[V\ M-KQH>^X0^*T,/E\Y4\U-GO_<]T13A.XZC9S=F'BY='A?*_S[U+%C4F:B%VXDHLO?3S^?WEC%0:/YT\Z[ZK"B MYL^_M4ID$JD9M3S9Z2P5*ZE8>:$@PUL6*^NTY9XM5FJ_].'%Y[-J^:9^9>UX M/P_UGZW;71 K8/FIE4PI-]E+[]7&;639\YHLO+<@<9\O6 L@.PPG0*2]A&1= M7KAH[=O:))FX(E,+VX4FY.&QG#=WS@?!/M_L:ES>GCK.L'MU[>^>GY_4ON0/ M]G=;932["KF,6IQL)Y?R^IOF]4GSYXWQ^HKLG]7S^I_>[J_./OO5O#J\.OTQ MN/KYL_W=PE.'8 L5BYF".MDW:;XQ#[4_X/G:G-,5)BR(V/TD[F^&V3R6L?@['F@>' M/2HZ*+ESES/G*36M@J709H^IX13U+9AB_O[,W_@'@]*AUNC7AMT3NUMIE*QA MJXJN;K&2R526S=5QVNK9T>ASXU>N7KS>4-81/;V( [6ZAF*NJ\T-56NK/<0&F$;=_& MN^XM,;"?3TLWTAQK6KJQ05;8DJLWCFW=)>&O66(*#:TT&624?:"P.SN---AU M79P91\V6IXCDKZ7;AI]OV7JN;/N_;[3.UT)K]UNKAB96OII1\_.RK:F 205, M6L3QNRSG@NY=^?ZP];6HJMB0$&V^_?<6I/#6)WO7#X/75 ;RIH)GHL'G[)'PD?QM58+"-\.K7S<. MOQTX9[W7O*EXW2-$R.=1Y^9<^WD\ MNNI_'U[4O__ICJ[WJ5-TF41(OCBOTG^+XW8)=N(71OV!7]8?VDKYNK7I_PW: M^_KSF9L,C90-WNC>UY\&7!XT-C^JD9@R-AG1B!?0**FSL*7.0GJ0A,Q_/D.> M2LN% ] +_ORIYHNYDYMF?T?[5MTYO?QE#C+[^4;S:MZCI4??/E2HW$L!9S06TQK;5+.?UV._U(X?\VN_RHX?]31S&O+ MNAXU1E_V@M;0L>]S/>+\,G)^^;56Y2QDY*SD"*Z25NN\0#)]$Z7N*@MPWJ(X MWB)#3$1@IPCDO?V3X%M7_7W>:)[_LNYR1X9>_TGC[AYCBJ5B)!4CRRBS>8MB M9(NLNMEBY+I^Q2JUJ^:?QJAV^5N__#6T"LTNBA&RZTH/VG7_4,W/,D9!)HEZ M1FI%EG7E%\^N/&+4X^-X3RZF''TCC3H^P=K21D[@?^R8]\R(CP"24YWY+I.6 M,;^L())+8RS\J$6.&Y8(:K0N9\NQZ@2O4BN8Y!K&F#F.H^34ZTHIF_ YH"KMITX^Q6:)AM?[TJ:.^@UU\K,!@RE\;UZBDM&#S@EE=FZ;W M)]C%0>:7VGTH:O[+/MYWO.85:S3,GX.6WC2'76P$EYWL4: MW5@(*43-BL'WA)K)%P#?<>77X>'7'WVUH94J%\'>E]W]ZL]=;'B5G2S/D>#+ M*/#< =/Q0(DURDSTDR)RG]4T5)(ZEBYZBND#<;MLQ]?NP^Y4DC>0TS0 L3MP M +),872:!0^QX-7T%?#*@E@PI2N/&0>..QV5_,H0D3OY&":O7;][--!W/U_UO_QR M:J/N]5?OO(M-:R?P^#?1_XH!]WCZ?R' V6S8;?SG&,PR-H;C!Q_D68<.CZ4K>P!U7#,("( <&!E> MT$<+A%OR'CUR8 4>,6IX+I:%1V517[BFCJ_@3T#4*]H0T.V%$O\E)5!EMO/Y[(S==2ZNP QA M0&P#>)+O!NQYL:"I80.*A2&P9)AP]F"X&;A1\UE%4:(-*GR'X0"YYZ^8].CL M)>^"SXF4'5A$XQX0D]D!10U+ 1F >20/?5$/>!:N1&8S?6(V,.1]N)(M;B^* M.<6M;V>C[WMVJWAX]257^'S>'OT^\MRG::@Z&'6P27[MA>G=[(TN1P-&4A$L MPM:),SPSK7.@2A!2ME%W7,?6[DPW\.K.G6FH-2$F#\Y.NC^L7SVG\:5@-7MZ M<<>^NDV(R=PCI.0%"HI ]P,7Q N\]H*16U-W/%\6.Y\+8'@-RZ2^LOP;L!60QNT,GE*3;G*-K,HUAS=A >"Y+/'C0N_I_DH MWDQ7D>A0AJ;?(Y$'$AVDQ$CI:8;29LQ66+BVK+(?A!Y&DN/L93A)@ (H%[@>)-PQH!4,'V-LEU(T)RF1'H< G>35L8.NX- M/$YG2GL$.E=!&P^7JEFKI;5BC-:*K4)NS!I*2J&0SF;\+BBK[=^VND>YO)6[ M+MY=U)K68/_4W 3*^M[?<[OW@Q-V%7PM_C;[\,1UEM:P2BW.CHKE_-5U2@6 M40W\HTG5%E-_N@5F.Z8C>I\,TQN M_21=.28>Y6O9 N880?0R@0[N4?)F>NQ MYR8>MJ,SRYI;=O"\J>TSYYCFBS)S$TI^Q//X*';\]W__)S%H?B*/(\R9&+P$ M'/+DL'79#I]CKV%XZ:-F#;61)VLJ:ME"Y'#*M15()>4 KG\KL;\C R1AI-SO MQ EW#]^!D+<)K]S1?4#_U)PQ4<7.0;LNC$LQ8R?O)HM)Q%<5+.5T@2.EY)( M*T3X "(&YQ#DT;\NS^IC;+ .[_62(A-H+:-L)"-$,)CVWQBE3&>9<;Q, S=G MTF-P8O)?-5L3#L&^Z>F!A]8WR.Y=D/$CS_2<+\6MR&P_7QLIM\ M=G(.[0]!AJ=)!6Z/: BG=!Q9F@L5$U M4X*"*]*,HED6_-AA+@.3S./Y"X#"MT!S00Z VK]@ \?UI1&!X,OG/@F;(T,? MU4_AUS1X8/S;(1O_)O#D%PA6\278$?);6E TR2!#HPR4]XFWA.,-X(8/]!R, M/<.^J),#[=L#U6X:IN::#)X1V& +>VBY>#[%FD-(B2"/@$GL!P$U+ZM-,DAPU^_ UI-F MGJ;K'.BX@,#6 G@P,^@-S/;X7]'6HR5X,O[@B37P6#VX 7/WA<#03%B> #K8 M.N@Q[Z#1B)=&CY5((],2,&>1WPU@ /UI ]S!]@&;R$<4M,$T91V^$':/00!8 M"4""#"F@OZQR!OC4KA%9? ]O3["!%X&-;X@[4IIRA^3BCRAR )X)7RQ@ Y0_P,,G4C)E?VZQ @,< M5M=LX_O;SAVR7L01 9G 8%B? L2Y-+I@75@-WGX@%G8B%M:<@"H1-@\I LPL MCPV!.-E,/N4,#6L'QQ4\"(QA(NQ,'?<'# 4^+$@%/PO&'$9$+'RU._EF5%83S! M>E70?PD7,@=;;(J;6H&?;ALM!Y5<$T$ M!R9 !@!M!^C7!2[X9!X8J8+';1^I&J-W"-8>; 8HA-GP0,805$.XM(?2!B\' MF@#LN%P NHZE($ '"'#.CP/7 4\/>06N 1%CA"]![@67!IF/>!)]21OD&5P7 MV!2?LX4#Z)A\:5W-HY<+RL(+?? 3_L"3#/*.>!3/-2G=D\'0W\!BH0052\&/ M W!462AR@?# &&>N)_0[?PF1N71#R6F%!V!5#\A'!OOPF'N',0:>FN2,XR1V M+#8*.P!IV_>09(&43<^/!#,(2?B=)_L1(Y@91>'+Z.X>_$,)4T[>"T-^;:3$ M-1&E.)R@VY,P4;@CXLF*!G34 4DDH$ ,1.+%PS .ZZ)C!"1@.=SD$'?=L%$" M]1RP" X7;B&!$I>E3#EG;M_4 ([-^MG9^3_-R]WZEPR%0P!N: E$)]&1MG3;FX8W*+U'80S"@8>\F*)=XLWSM@0E[/P7 ]V#;XR!D/ N-)( M18*4&0>+%PS(+N+Z/D%,@E")SD*$(MFP?ML:"9H::*8;WL+Y+&)FA,88N<,/ MZ$^33 :HQ^"\YP!!8N4Y1?A.G !\;[!(Z '-X ]8%QFEW@-[8/TT!:MS;*:T M P\#D@ TUHW$BHMJ(Q#[ <\2\&5(M8[9-@] "[#Y&')C1K"BP%8"ZO0-H3ZK MG//KDR\ .05+-BF.E7@5HR IJ4S)FM[((V8?0X$/JP)477!YL.C3A?@0BI2' M8T("@+=&%!)XHD@"%Q**A)A8C E#6):.$!7B%/\;>QF6' D1"A++04%X,!U: ML[:!N5#4$SUFQ\5F7-;%'C)%FJ)[*8$GP]!H]86[Y4O-*KMAE!"S05,6E8 H M7P@7( 1!SDVAG4WV@EP'".M0+W#SM*?=X6;8G>D$'FQ3[$=$,4.Q[]@BVDI: M!.0$*!*B"-)^Y$Z1\NLR&P@=Y1X]&&.>$8I#B0%8 RY LH]%[H-&X=@^D"O%ZR,?-,.M&4WQ^F@%@2(-;)Y7(NII,V0K3NQ"Z<3TXWIL M;8#X#?.5 ]"/CNNMAX;W69\4C4B1)*S"4,@8; TX<5D9S#@\D.*AXBW92). MVB!Q\T0F8,8M(IL2! F1[II=,F-"!&;&KIRTMCD*Z0G,X)?#PA'G<%GXX%", M>I$W1O>/OT!H**F.Q._A/NEGK#@P3*$JP@PD7G?G6.@,PH4Q[8H+X4K.Q0(! MAYH(*;HVP""7XB&0\8MV9%#:&IA*\%N7,E88&S')E(IM/@(XM_L",.U Q=^9 M)/L[5H!1+_0)!)N_5@:I?CL M&*8R:&PP#78KT,QC9*C],.0(ZAFC-Y&?$[-[L;24JSO?Q,I03#7$R"@SX4\1 MTR2TZI@]1@*NSS3RHJ;L4>*?2!,^=S&FQ:UV?"^\EN DHJ(1*(C%R&0 T4YN M#K?W"92P(![((9V 2-; )0(U =8LN!CH.7'_),[28NDH4BC: MA4:26#95L9"XQU=QA!"O".LF#&J'S\/8FR3*L")-4H47X J\N=C'&KB!)D0% M8;"6-Z&+Y@25'P M8/KBC63\"FG&+\WXK3'CMQ2 Q>PH+N'O37\T$07CKK:B8QC=#I-30JR%@H"" M"2B+29Z-N^0DGRD&'9#*!EE=T$!]4R+37F'A?M#<4G2G+NLPF1'X0I43W[##)-!GKUHNXYF M\-@J X'J)Y2-WI .XL+C2<(>K/:/0Y[)F-6 +B[L#Z6:QL//W%])7,:5@=JFTF.>I*]2A2 KHPG2T.\?E,.2[E;J<4E!8'VKW*$;+ M+>'I=K[D"9G\%$H;WZ.CA[0F5YH'R^8'G= \1H/!F0XF86,!H-Z;69;-*+V1 MX6J!)2BNX_(<@O%AFJ%/\1"-6WL#$;E.7B7OQU1-5] W7H[66<)1B RR*'3" MTX]>TH,(#9GPAG: 9XTP)@+;!3U-&0-"#9DSDO/0K %#10-EALZ#II/7@=R% MU"B_H3VT Z,+MC+F3<&7-4&0/LN9?01&%PK&Z1;(1(!/TIA<,,HCC-$I,2O- MZCL@1KBZ7S!N=8FA*I1 G#S&G RB!\YED4LWL:1HY9X) -4P9\G=$\Y;T0(B MHW<.A,)HQ+*8\,DEPN_^>\%0VBG[N&YG$.7:+PDH85&PJ'8[LFX*E6HIEZ\5 MGU4L\[A@'". \XB;IM@.\ADG>Q%TE!6VRGL@'X>78+BH?!"S> $/MG2TKZ)P9,G M._AN9!9G! \ "\+F>OF M5U:LYJ+'29R&48K. (Z 4I1*;O$RABNG+^N8[K MTK>\%@"_Q*?PO#L*DL!%%L2H_CU(9A.,'H28[8 AXR$OD4QZ@MP'KC]D5@6;!,M#9GPTP2!D(0,*S 2M$,&*)'4>Q2.8*(C[ PPESRP MQGA1$FC$T8[F[_0PZD'^E*BZ ?':QCI?$>680IN@ML N=BRAK$0.#;D@<(5H MG?+T*"A%I=P<5!';W3%*J= 1 EBTS!KN6T M156!6'Q$$F&H/2[4).ED@,W1:I$!SB31P7?G#+-N+.@KC7L9\*F'%/;^[+Q1 MYXB]P$(IC:P'@#52*FQ=!"EY\@A7%_-5]$"H!0UHDO'47+Q&'G_/ FB[CF^* MTK AHTH*,' PV0=2(*LTL?!+V07;%E[N8WI.LVTG(#\&[>4^#[J*\GQ?.#%8 M&H?+8;0G&5@\!%J9G!B!<*YV@5 M9&G'!1":Y!$!Q40CE$%%#*H^#E9L8XA-E[(I('_%PK]B/(&N# MCI -0M-21M)!2-.!])A':*+O8,= 3G*M;QH[_"V"*&V^"9+^0V(J3>\QX2S! MGG:BN@9;H YPVP<],K%;9$,;3Z>)HDH ?9L*8 1L<".)B,*,$TA9Y<@9(C=S M0=IU^3YU/%GCDDT 8N[*![83IAC0D%87$W_'R#4N?J3H$'R^?BS9\#FSP' M>":QLK FX%5_J?ELH4A.2UM#6SNBLGQ5DID2/[>P>I?OCIPCX29/'NZB[$\D M_(0C%*I*4(D#2])G&%./\!Y#CJY1V4$;/3)GX&")B8Z"@%L&8Q40 A>D$N.* M)5&!)44!Q7YC2P\%DB>L)A"1,KV#A@FFGI!XN%O&D<9A?XF5CO!_#&L0XA&; M&9#AV4U1B!9ZZ[$D;&0V"BTP DT$IJH?-ZRB5B_3GZ>0($!YRA>T!^SN@AW< M[2'-PX^5JDIYA"S6*2V:#>?1,7:#@E,GI%N5$]+U9=",$AD$* OA,]>&PLL28[!/#. M5[0NBX-'ZJ*S23$I&84Y,AS;)2+-&X0F[6?&I>!Z:&Y6&.!,G*JQ]9H=FE.$,; M5.!0CUQ.N )>G)GULKCJB$1WFAWDV<%BFAU,LX-;G!TTXX&D9,F"R/Z%GJRH MF^,)I>2Q>2SK,;AA K98OE*)'WY^C\[# /3F/9U$ JE9R/W]@61IXJA[**3B M$D?8MU%\3%3DS0TE,<51*1/JE09!< M^E_Y0MC9!@!B1KU=T/(.-'Z: @6^XH$NL;OBW='#X[^%W0SHMQW4^ MYG(R9+EQ0V"@C; /%[9K8U*9V*QC8@4CIF?8/7]4]*8D&/GR\(UX+@141]NQ M U(R4?!_O*U!6-H2G6B;.# 6G@":JJ@F$ZP^MX QN\J$@0(F#/C]"!<># :# M)5E2*2J@P:PPHI8*6-OD[X!=QW@Q6EC9&9H:?0=<3FECUL &**?L$?#I#28^'>FZ_!P=3((,F%14*X: M=X?^ ;:\"C.G:&^&=77\+=032R("(#EFS&Q +N82Z+?366,GEK-0?)4GG*9+ M5P-VN& 8&$$.):*G8ZQJ^9/XSU7S\D(0N?C/AT0P#=UD:KW1E]%B(+ZNBRZO MM*.([^C4)G("\V3JFM.XSR&"YK1,9H"< RL1#6#LC-H495>%G"J=!;[P76[" MJ[5*,3Q\&[M8'K[-XM'&J<>GB)GCCY=KZ>#5@>C+2LZCV $753*'&'[MH0PD M8]=WG=#TU8BKFFS@4ZA0N*UJ%9[L@YC=#;I ZDI%L!L=:KVC2&VX0%$5@*+W M7GCR%"3@22?!Y8F30GR!?!^B9^64YZ)OK.;^3N:G8@O%15+46C,]CJ4\6$VD M"4?"'S^DH+B@0]%<]X0?LW>I"PD2G4MZZ2 M]7K\0/;4W@'/74>B"\ C5G:)X2#1&8''A!K3>AK6HZ 2OWB1^]3:>N3N9>+D M.N_/*>0L5KC2>=SDF?A(/N0@Z'$5T_%YK[5ZID:_/F+L1<@=CC48AT +JR M@8_\3 F(C]PW!)O8>- GBS4X#2_5VH"6P&=+]L7&VQ#%+APL/F@W[DD_RI7(* M^%34O!W 5[+%E.)?AN(K^13P3P?\(F.D*0;WG(#9ZK9>G19A7M+@TGG;?JH M7BTD'KEQV"9^^9]WI7?+!4(M6Y@K#1\-A>I@3HW/(DE.*N=,A.##A.>;)X/E M;GRUP^0W=N,/F;Q+KFO;9%"\6>)_R A\4S0PWRQ;A0;@>=:Q2W/-7VHU("S1D'-2!Y);9_4]DEMGY3X4]LGM7U2VV?] M;#UQ[FUR!-,X2N-637ZY5DTU6]TNHP:K+;?+B)E ^-S]S::&]@P[-Z4(K*-- M*6*%%%&J;15%_,4!5._A5)^4-%9B[VT1.?R]1G)8LOVW1E,XM1LW6S*L)696 M7:[FR->R976CTH'O39M+ ^RTZ&FVX7W8+@6QM0RQFC#!-D+BM6N)?^DZ8YW. MBRN*^7UH>7/?N-N'JN6?S9YT=#%^7+.0 MZ%(S,P:4DF9*FBEIIJ2YH:2YXDQ@2IK+1-:*4W8;@ZQ56-K+8<$IEO1+&LQA MJ[PR/6]L,/ T)&T>XRQ!'&Z>C/]K"(F);B4X.81 M7#E3+N92@GL=!/>RYN="!%>H;9=XFVV@;9F]N1!V):6=;[K5MD"^^!IF]#A]U"TR(0CFCE@MK06E*P"D!KX" JYEBK9(2<$K M&V!3+TJT[_.90J'XX750[2N,]BZ,QW)670\6TS#PTRST!Z8O;X<;^U)!DS66 MR*[4=Z^^P%Z6;>;D,K7B4MW[E&I3JETYU18RE4(UI=HW1+6E]1ZM6*)%7JD5 MYMERFT>JVQO=7A@KU>QR<;)59O1F1\!Q/ <\\-*)1<"]+7=E-RX LZ%:8;D1 MQ@U2%T\Q>=IAR0)O5!#_TP.''^OAA'LYNW[6,N?4GI<6O#\6M"W5:9PYL=C.?%+F@6X]#QP<-G'[?(-=VX M@,S6.^);4-9;*F?40AI13 EX:PFXD,FI\TI?4@)^PP2\#6<],ZKZ2LY5O,+@ M]I-$4G8]2>JMLNLWT'QW'SQ5NGDL]BJC-DLNYMUP\:#6,H6Y92PIU:54MWRJ MJV0J6]95(J6ZK3=NU4RIN%WG$K:WV/M)G8VR\UR/UVV1;E.DN?/XXY5;Y#>F M<8\W&+C+%S)5=9Y!DA)P2L ;3<#E3"U73@DX)> -,,X7)=KWA4RN5DJ+J3?5 MB%\8CZJ:71,:M\JHWR#;O4;K,9JYFD=FN&7W3-CW?U7SSCL7*JK?! M-TX#,EMOM*B%3+F:"Z[8H#IE2W4?;M4ZBN5BMN%N!\@Z#Q.GHS9'*Y5U+&MT&DD3+* MJV,4!)>:7P_QI*SR=EEEP[J=I#IEO. .&53".G2867E,0*.WEO)!T*N8R M:C5MO)(RP)ME !PH.D]#IPR0,L"V^ ^+$OW[:J:0JZ3E]YOJ9RR,1[623B3= ML'#^"T5EMD&Y;%XE:MHX.J7'E!Y3>MQ*U+U2>DP;F6\MZM)&YAMG"F]D"'ZL MQO_8]IG+/%\Q*2Z?46SF;[E3NG&AF*UWP;?@?&%1S;V.D$I*O6^0>O/S2E]2 MXGW#Q+L%AVP+U5=2H?X*H]EIX?EF1JK'K/ S:N4HJLUGVN";QS%I#>2;+]U] M^#!?2K8IV6Y(RC:3*^;GY6Q34GUMI+IA52)// -:W*Y^7:^FRGRZO?RZS>*- MC%I_"@O'VZSCN$R$JQ5?NT^[TJ1!D^V+^!5SF5(M+?Y."7AK";B2*5;2L'5* MP)L0ME[8 RQGJI5J6GR]J>;WXIY\,>U]OMDA[>/00)=Q;>5]F]FL8_H?ML.+ M34,OKRI*^*0.M9EB;:GCT5*B38EV)0JQ5BFD@>VW1*BO(+!=!0]R7M7>YA%M M&MC>8N-X4P/;ITQ67RM;[I%N7!PE*2 +(" -)VA;;#W2_J]U=X!8PP:773N( MP^CF38%(J3^E_E=+_=@ I9C.#TVI?PG6_\M2_^*!VU*F4$PC\!OK)RR,R )8 M_VD$?M$(_*S=K<&]L/O*?Q3;\94^TVQX=">PML/93D_UIUTF4GI\=9M*Z7%K M4?=*Z3'M>K*UJ$N[GFR !?R/KX';^6(+>=IK^4>\\:/I R)TCG?3AO?X']5J M8F7AC*!IT9UTF2^PS'\,\^Z__X9_Y'VZQ307>:GWR3"]@:6-/A)9BO?*,$F^ MDBV4<#7P58\A>W\L8,&28+5<[F]<4.RYB8?MZ,RRYN:+Y!.>+7ITAIUY)-3R MQ5B!%8>:6HH!(O;O__Y/?/F3;K@(#L7@)>"0)]'293MMEVDW.UH'WO]1LX;: MR)/RMI8- VL?P_A2@="9 [C^K<3^1BA,8*FOW>_$ "4DV8[%.D E_#;Y' M\$O',W%0P$>769IOWK$Q+ DD^\[@8QY471+!19"@I0D<+Z7>K1"+^&I*SV6= M_[S[U^59?8RHG\I+MN/V-8M_,^2;$5_%* 6!!^^_1 )5G(Y2AZN!>+R07;2' M668<+]/ _0*2X8+=,3L0)WR>P5*+O>W<=8Q ]Q67OU7I.*[B]QC\O\N8TH?G M]CR%P:,,Y:OFZCT>_BNH&?Y'/I?/*4/-4_ZJ5K(Y!99G 0@S\+B.Q70?:%K1 MX"D&SKR@ TS 9AYA[*]["6XK(%KPMX! M:(KF^Z[9#DBD*;X#O_"-]\W[C-*%.X#S% ?"!IW@ ! N?:> +ZIKN!YX"M&P:_!N\84^[@>N/ M@FX/%GJ5;685Q_9Z>%HL6L9MH+FP.P0"K 6D'0<4?-6GH^SYW*?$V^@[]1,@ M<> R#]F*7J4- &;W $\_ODY8%?!*\M4A&.FQ &RP\_2>,@2<,)?1PSAB1H@& MW \]:@B*IL<^],'?9J!"Y^EJ_**KL@0I%_-@==:$> ZI'>G.A!>U \^TF>%93#!;CSWRV$/T&;RC_G1%\6JAF M2\_GT_!E\_F4\Q1BPF*(7DYP8"J)<3H!_ @(<_K,'>=4O GNP;O6A)@#DUF& MI%%:C4-=3IZ/J5RV-@=3U02FJA&F"MG*VC E+S-"A(2XRJ!\"P62AY<"TS)$ M%BVI8[I>**=P3[1SS7* PX>FWYN&_^>@]%D*NCY]5.K*B0O?B[ 9+$MEE\I9 M-494=E(_%^(_)OB_5(A4_9+TM 6[9E-H*KXHH!6Y=4^S *IWCA5@^TX?Z!'T M,*$$%99[QSQ:EVD#A'P'U(S3]ARX!1P,';3?>O'E+DE: ^ *L]&E1C*9T%4+ MT:56(OFP8G3UP%Q',PH-!]VD,6?A21AD77ZC*T$"-B*80_ \U/SXWTAV>[JK M#01&AXY[$_*:5/RX"3UP\4G*@+FF8ZQ)QB^4*I:X[ZQ*(>0+<:$_IA#&65?- MA\20+T>*9$D:8;K&'F@C%^Q).5C:\QPD"'@RR?,.PVLX= ![GF/;S,H^/R;S M"#PV&1F.&6$>6H0=S0 ?VD3[CZQ:2;M/Y]F8 I[&L[D9BEO-+T-Q)WCV =%* MAA38NJ8/" 1#6 C2C.1IT.CZS4X[,JQL+\G?"#YI7X.<[H U3=8XX)IYM!XO M6I''/0&PKGT3#?:8(Z7!JU'(X[-A79IM!_ 0N!%PBCAI.S:X09JNN_"]MR:F M;S+TG& -"Y.$\ F $,8P3<@P L*!%SY6'!.G048[L'JN @YE9BI#ZX;$6) W?= 7/C\\GU1(>;>3XYK^3. M 7D'ED\$%KFU0(=_%2+7!KU;HC[8O#'VV+\2ET4O&4>?M[B4"9DD_J9PU:0< MK0 AJG[RE>@&^$/5-DML\20(VH"=XF)3'UC9'OB!X+JP8F!YD-#\K 6N E M'JX*=Q^ZU,K P?@:\&I\=5A>XP4 2H1H&P^^WC!;1B:$]YT)5SK&V(8).IY, M>HH#:*,^CS0X<8JF6!S'V'1!P"8Y)O9R:M17^036H&D#F^'R0=MT,)P(CY'$ MX3M@C& ,)DD)D=$$JT6A"E@O3F(=V5F'6[J.2W0"'Q^%]#59+6;B#0G?9WI' M?)02YO@O3]>$L7!?)A%8L3#LXO= '<$UZO.5G@Z/ZE)X+7)5A;@5JLPLI;1!$Z#YL L(FFZ=R="6^7U1'J;4)'17C.]#,C"SNT (?9S@- M"%YW; /Y.+PZ)J3Y\]' J%MPK[*+^(?5<)N"L.9R&\5VN+20&Y@7'A!:+$V* MJ>4T*98FQ38^*;9$936[RP:7@B)5 A=F40]X0?LWTWT49F0Q=Y@1:F7/%XFI ML+,>!BK0=)()'ODC I0_]^2DGE6FK.+)NK$2BZ>_5ZM9X!\&[FD^(F&2V B@ -*.9&-Z*P5O^> M5,5TBX9(Z6F^,H8PQX8+8UB;A[!9Z"(_>@K"P-MT=*G;*.7FV" 1;1]M9*ZX MI'7@40GY+.IQ7+$66,2S/*HX4[<=RYC#&"?F;6 :F/Q 4-2U 3*%?(/E!?J?R#1W;T3I:3J4S]!ZYDDHIQ@CHR=QIID5R M,7PTK&D M_JCK-($_C@%!T#VWQ/OF7J+NC7)&C69'(B[\N\K* H7(N5(#I= M$)TKB8[<7L(O@!JD@9'AGSH@(+Q8[A7<0F> ?U-1 $_BB.QZ1C$[8,/"PSQX M=R:._KDHSRK[#$0OIXT!O%[DYM$8-7FL( JYHK1Q7!YQZ&LC'G7H:7<\2J+Q M^BL2K9X',BKF^R+=BMT;K.WSQ8(46%?$&?$26Q_&W;S.B( 2X<;%5;J<$C,B M5L"I''!AH-^)P3^"B1!\/9 UF#0%% T+A M[O?85'U,R)'OF7A6+(./"@T(#>00"@.M"ZH10::\QU_%!BXO=N7:,UP_#3&, MAKO&C"76,U!.$JQ_#5E=9"$<#'J#WC #: O>"Y:?'"&M@!U'&#)=RI''"'1 MNPVB;K)($-F=P \0#"$738EE@-+22'USC@.$HN0C]PVXPNF;>HP[,E,81KA< MC?^G]0>?SG$'6 Z!&5PN0B-9J\O\EC94,&;B@CCT,O13&&[)1)454SBQC^24 M")^UVDA@V.T#AOA(X0>67H *8IY"9N(6T]8X*,( M4;0/!(;E,:&!);0DJ", %@8G1"XFQZ^0>@H(ZZ]"I+;Z %]K%*?@1-H,DYN> M+S0/!C[ZVF_'1>0(9WOFPBD8>C_@1,(C=]S\H(]#S35B7G=/LSJ2\V@;'=,# MEU?A%4T(-@<%1N $'D(.]'L@(3?MY9P^2.+V*18,K!58O@RZ>7@EAQ0G?IXV MC,J-0MH))5P&GP10Y[3E]WA\UF!](D0G3#9JGL=0-$:F@#0 D.;9/8A(DGMH M'7+F6"+SA"4J(K*$"V,@FOUHJ?C_=PY*OAB'28D+SR?WRUM7[/X:>=$R&:E' MD("(SQ!&4[1]I.=Y60Z745(#3S&_'E#MG : ,KU E.+YA$Q8"CBKGL]-=]@/ M+%KZ-D#*?>0,S!<+ T^8*G'5" 88/&] :YU.H2%OH%".])\,42_4EF%Y&:%_319?^#3D#@ MQFUZ&0S@91<>63GD4G^DU8K;1=B1-VS0X>':P&,?Y1_QQ9:C\ST\ )B+?<&C M?[F)J)WORE>(X)[*0T>+-8:M%+/5N<>H8M&QV/,QV88PD,J^_C(PZ4@ M?8P'PY0B"$TOEI=J6*,4^&P5X:7L$2NP]^?-1)%/'OLPYZY;.Y% \; M@ 7QP/(I;G'[U,\K$TN55(\+ T/ MB[1JU0+?F5MB\* 1NS905!\!B@=:9LW;]5.-R$V& ^P:O_S/N]*[Y<*DD,U5 MUMHNNSJO;F4Z%-N)=\1]^VDN]=2T];__:3^R!7+*5R_&5U.B$ DP<)1._CN= M8_++Y1BL,%*WF6,PQ)1DAZ73PWRC.*6'#:,'C!^FXG%KQ./K,3LVERG>FS:7 M(7[/"3S--KP/C^>11:8HO ";G%+&U^O)K@HSBVY6V;SVA;GBI=MPSP^C+G_S M*VVZ_5 T!QUM]\)*EAU716] X&Z]8EC;W:_U*9#Z^9K;WKV8*A;EC&MZ" MLMAXG;!,NERS_'\B7:J%3+4X9?#$:_!4I&H0%<.IE_(ZO9353XW9&BU3RY1S MQ75,D=E*];.]OLI:2'P[%%8A4RJ59NBKYS5.W\A&X(]8U,(1.GXPN%B*G:?$ MPNJ_"L78-XOW(,)[>0N3Z/B5-8Z#' M[2GU]Z#CTV8-LEE#)6W6D#9K>%7-&A90"0M%@D0?\:C))9=X:N$1[2L?EGAS M&MH*@28Z#D\].3?6^08/1HP=RN-O%X]*-BV;=29.-L>BCF3BJ)T\5"J/D,$F M[TS7L?'035:!_[V,VIKGKG'\U6(]W+G&>D13]\70-[>MX5_%& %1FS%^%"G1 M82Q^/FK*>:P0C?Q<7K)I8S[662!Y +I/ISZ3I[&6=7QUBA2+\^"\C.=9I[.S MQWM7*4NFN2\=0^US>M-=$1-? > ZUU*!3]PXL2[344CQ:EA9;%H>;IIC& M?]ZUREJ[6C3RM5:G7:BVBD7-:-5476^U6;Y2+99RK)(SWG&1R>\X]EF_\"W M;CE>X(J;EG0>+:D7JV/0V7FH6R*L6=2V92%)=SRLC+T(P]/>8T, !.GJQ5Q!KZEE(-ABKE4L MZ>56-:=66Y5.OMJN%=12-3])ND4T!ES'PO*$<]?108O WEJ5?*68JVPFS1:G MT*SOKDJKK8)U'S6(:]Z*)X:X. M1!Q8S., 50O:CEJB5:HE _X4/7.PG:0X>&]DQ+EJ5+->,,#.TY[4Q6$G&NJ[ M2R>8!3"0,V ?&I>^\?XA#F\*8^/5:+8P/?!Y>]".J6.+?SJ-+'^/^FR*W_DD MCK"C%'6"$":.P3PPA'E?"'E<7*XE$A:R#X3H91HB1WF/;7191XX1F #3>_:! M?XS %7X5@2@.Z@^B^4YTMI5:]KARVHI)+5)"B;' &K'3 M\F[[0@O'X%K0G' MYBU(/'@"H9[.V?,&)]35P^>-&.DDMNS3(-[)5Q205Q[^&9Y?-D0;>023,-Q%GP;JFRM/ M,:.5:7;,:"B%&U&4:"71#\FCV:AGE3T*C5#C(0(^"^5+YKD@0HJB;K]&U'YA M 7JC[E-1^[9IO:0406132=!B8&4_J\7$@G[B G+\W7_K1*Y$Y-2&%GLQ"5%- M;8]C7;BX)@10[(7Y'BF7>(%.183-V0^9Q2TV8-OE\N]!1.Y56C>58 MJZB6JZVV42VWU':A7,CGM4Y)SR5,F_/=B\OCX[/+H\;%\>G!V<77W$ESUO>$4+5 AB4Y:K: M+K4TIFE@7QJE5K6B:JU"6&P >4GVN^*]D; C MOX^-A Q3YW(7W!/9O@Q;^U"[X_ 5\;YB.#6I35Z25,&R*PR(&%+@@2TY&R6" M;(1'(1::PX!&AT50!+[W,=Y!O61(=&BA+% T [@=H_?] 3;DE,W&0NX/^QNM MJ_?0?M0BU-9XR[,D;/G4 .Q;SSO6H!K'&TQL76[:=XYUQ]6X&+8",(?[%&Q0 MTQ5FIAOOZXG9@@ ;/L+7NJ69_43?N/B;8^&NN$&$&8]8Q+QT?8RTW:D=8&H0)T$'K5; M1!,+S0N!?9R9-YUPJ3LVD6O_H"W 6NII7REL*$NL;H[Q2?&Q2MB M]2L2:)\F)F^,.Q4X:04^@:PA60:BY%LX(I);4AEEY 2*UW,""[MDN:P3H-$ M6/5,Z4]0>$3T8XMU]].U0 YU\,+>J.@%Z:[91GLY=$AP( @2KHCQ<,&_FU7B M,(JB-\(K@-)DT MZ49V8-0)9A.6UI@ >S(#I8E4D4BMIHG4-)&Z\8G4V8HBFE=+$HO+%9S>Q*T_ ME#04=PZ[DM[8SI#$>>!Q(X_'>Z(+# 8"E,>)S'ZDP+'/,38\CHLDJ?27+9RX M1TPV1)LQ&]WB<"%C_G%"3(O.@X['8IIBMJAWW)BL?E@TA^*MLX(>@0SL_ M&!BBV7!2=6##7]/'L4!"/>U''45Y<"G1(;>#"Z6/!*1=/T(C[4Z5?Q^_D=?,!L;.;NE%?3[+EH/+$7FJ$A$.@* M;*9JB(FHL:G(XMKDC'-9(^))SPYK!&,[Y&V!370:SV)?1\#FM!BX-IK8=X@B ML/ZM@/'1@*-DQ^2PH[(L.>%%#U&'VVDD2U3M4;-DTB>87')DA3.A@8Q'NX],2[+#Y/+KT&+H/M;9D-1V_M2S!+GW',#NF M'@8_X%J]QXR N #6'[9VEF.M2;:1I1M1=$P\)<>N8V9+HWS4W,7+V8-2Z7,X M\("#_?Q 0SAG)!9I6#EY'4@_DR==A P3I!.33''F$;XL#^]IE#SPPWD+OL,E M3-B.]]%-=1^GD0^&4$ MNW<3]?"/6N68MTFH@?7-J?RO3E3&_[]_UMD*2SN [_)<;] MO9'A@F!UVWQ ZK2Y#J&P50;.(.!O6CM^1Y,=LGFI@02Z*?N5TP1OZ$Y1OG#%.(+.B# M)R8SG'4<]>"B7I1#8L[.&_5P0,R$R914P^'K@?!Q6A?>J^CRD2])J[F45%^2 M5+GI3.-'R) #ZG$&E%X!&O)Z&B ?@Y>>D*$8! D-X9@(]8+!P!K-H:/ID382 M5&&4+Z6U5TYKKF9[*,^XH -SNL-+T+8^[;@-X-XUO<=R,4)?2E3.8 M!4XK_3K%$TG-O+=+/P,'ZP5T,54U= BB! 2/ZJ!<^BBT_P->1I5* MJ)322,/9&#GD]E:?:>* #](*TWLVK*?+Y9=Q1Q'06 P.PQQ=7JX2] ?X@)20 MWBXA#1R?&^IXY(%9L:,FW('L@YBB6/*8!ZE95!9-I?2"HN3,X_=4MXD9!1,# M\IYC:6![=1FE5/HX]]0W#?P/B3J=4E(4:S,=_,;[D-+CVZ5'I$*/LB8R0T2I M"SX DY\]#..^-*DZJM&8F",::F">J^:*6.8-YV9C4@I\NQ08*\7!VG-Q0*HK M$@F)ZF=,1FB!!:Y!Q\6C[F[RT']*12D5D<4?=J? ^H]I-/4^*O,8&_ N[7[= M@7OA80-JP#&P--L'18D/FDUD:2&LF!&;%L*FA;#K*81-,QVO6ZS+\ M(/,W# M8V/9YZ4BGLM@]*1UU/)X(D"MNP8LHU>7T=/T\.]I+A M#&TLPO,2!7%4 P>:$XTIQH^GMT< :Y!3IM>C-.9B96#T? JG#5SFT;%P488I MJH^P-AS>TV6\:Q*OJPI/L-?/OA_O[V!#/W@6D[4@FNA6Y6LWC/+M73P*;/.S M,E'&%/0V['[ $UGP>LT(FSJ8'G5*XE5=8R5NS!BOD(V!.U&@]W =F2(ES92Z M6WRJK@5>K'%#UW+:@+T> Z>^EPQYZWBN$^L?G6!@A9V]<.64%X[7(\@BK?%J M79G,"_-]\=*V>2 MX$CQ$T6-]&SY[OC)41?0;-I>E&$11[G$8?5#A& 0ST-YYX((H]F9L:-T]*Z+:4CS@ MX85'0:,#HJ*(@1KOR2/0+AN(7(;"2@T8EZ"OF M?<@^MN250Z(RU;GMY%.HKP#J^6PM!7HJ7]X"T%/YLE2H+V74+S=OUC@! M^6%(S6WE1:&7I8S C@F"C=K^!*'$(;"&61EQY>X6!9E+@G?/QRIDW/\&\RQK%]U \8?D$^5FS ^R)I>[( M#K'+&&&UD!W]N@>0/63/KH6%%AG71:5D^67"9"'7=>W[7P\]K)#R'[?WE<[. MWG[J?N3X[/4+Y@/6=H5DSM=F2^97)X!?+246:IE*97*.^W("@5LB33==:*;T M.YM^\]7L%/+=7LN7ST5([=Z56 8;[EHN0N]J.9/'<9VK,(NW"#QK-YM3V+P] M5BMD<[GM,]$IBKP99LYZC9KY9<];8]&42IE:K;Q1%OD;M[^G!BU>)_'EB]E\ M?KK,>_6-?F3CYY<^CD%IN T^BE''>1NBSX](439T/FV'4=4/! M631>9Z3XVCT5=^( 9&H*U+;$S)C$H4]L\N*:5+#/GQ[8IAPQB(.[DV/*^(F' MK#+[F,@V'AG:&!K-;S:-3LG$X5&&J43ZTB0ZFT+E2"(C5RO5VNU6IXU5^ 4M MU]**;=;*:T7=Z)1K:EG31$'](L(Y/9TJPRKIZ526GD[]M.K3J3%PJBJE^M_% MC\N4&_<],)I]KY57B^5\?C./QI2G'(V1"W_V[.SX@A]Q:F1FV8I ]/BY$B;6 MB^W-!8:5AY\1COAMCY08/'(J$LQ%V$M :>Y\X:<573[NV, C@SBPD9],B^8T M3QF86=/U3E6K&JUBIYQK%L_ITL^95F9!(*R3+;WK*VG\^6WO#N MJ^4MW7X4H%PF$[Q(/'?J^<>'BO"$5E).G6RLZ'IM7+'N[4ZJ9?[O*O8N>&)[ M:&&?QK91K\4D/!Z.XL_B /*G7G;+A:RZ:$3RQ4@V;D1,"=TM+^ _A3 W $6A M1]/S_<''?_X9#H=9C^G9KG/WSZZK]T#>>_\PHZNY_QB:K_VCEFLUM5#^!Q:J MJKEBN513J[EWO(:MY%-9GO)5 M*LO7(,O39,LFT-QL6?Y2SD/]()7EJ2S?=KYZ2[(\#W9Y*LPW@.AF"?/\AAOF MM5PY%>:I,-]8OGI;PCR?"O--(+K9PGRS+?-4F*?"?)/YZ@T)E-*/ZBJG HZGW6%\+I?/VD%@J M$U\!<;XUF5C?/4EEXLN3W5296-++D]U4N7BBM9F52L24-%.)N$:)>'[12"7BRY/=5(EX[C(/KDY-Q50POCR% MOC7!N-\X2 7CRY/=5,&XSSJF38T24VF8DF4J#5IW].Q8-_G/:CC^/+?;^SA2%L1 K!?N MXB_.1J^>,X4CWI$]J]98?THWWIE3#6:.!0B?B"W>)Q](+\^663BJJ92-1G[8 MCLU"D"G8Z5K)*3E\<[R_[],PD>BS75+'J&N'ODE@Z_]F]90]H$/;/>8RK'-X M3MOW1Z]ID>E%__=_BG(0N+;I]9++C(CJ)58[^:IDUX@9NQ&M)!3XG]C!5\T& MGJ>:%>1AY'O%<7&8R8#9GN8[[D@9X%%]^%)S7M5T/(V:CJ=)Q].L:SS-.\FDS>/#T]W+JXM&LU4L56O% M)4^B>7!:84S 14M9CT"-%]IC[::8^8+:TPNK[9D>N [>&?C7N^A=I4E]VJM M4,R(&V7+&Z4'IK<16".%"D:-^ @8?$V;*1[ GYP; 6'TK193[,ZV%@''T3= M>?@%]&27!3;<10\$\[#GN+!/(_OTZ2N"KX@_:;**^((S)WVSP("6!<>Q/.Q' M%?/9\MQ!GQLR;F/9:C1VX2.A+ M(.L?[Q^EJ)=+=%B'MS5/A1CE" MW\&-4":\H0/3UL#G )2VF5[X9FXD):[-V\A*3_ ]J;QOJP[C/!\)Z2F6_ I.L<2KUL4!DD3= M>O([#$(4.&..'WZYW[?^^_\#4$L! A0#% @ M$).>4-78_D0\" H"8 !< ( ! '=H9"TR,#(P,#,S M,7AE>#,Q9#$N:'1M4$L! A0#% @ $).>4$5'. <_" 4"D !< M ( !<0@ '=H9"TR,#(P,#,S,7AE>#,Q9#(N:'1M4$L! A0#% M @ $).>4&&UH>*!!0 JAP !< ( !Y1 '=H9"TR,#(P M,#,S,7AE>#,R9#$N:'1M4$L! A0#% @ $).>4-,8\#%T!0 X1L !< M ( !FQ8 '=H9"TR,#(P,#,S,7AE>#,R9#(N:'1M4$L! A0# M% @ $).>4,V+P2729P W14# !8 ( !1!P '=H9"TR M,#(P,#,S,7AE>#-D,BYH=&U02P$"% ,4 " 0DYY0$@D"+.$+ #G=0 M$ @ %*A =VAD+3(P,C P-#,P+GAS9%!+ 0(4 Q0 ( M !"3GE"!AHE _@L ,:E 4 " 5F0 !W:&0M,C R,# T M,S!?8V%L+GAM;%!+ 0(4 Q0 ( !"3GE \1YRDB !<" @ 4 M " 8F< !W:&0M,C R,# T,S!?9&5F+GAM;%!+ 0(4 Q0 ( !"3 MGE#\>$XL84H /B]! 4 " 4V] !W:&0M,C R,# T,S!? M;&%B+GAM;%!+ 0(4 Q0 ( !"3GE#RW>X \S ()J P 4 M " > ' 0!W:&0M,C R,# T,S!?<')E+GAM;%!+ 0(4 Q0 ( !"3GE!E MKWHSZUD! '>W#P 4 " 04Y 0!W:&0M,C R,# T,S!X,3!Q :+FAT;5!+!08 "P + . " BDP( ! end XML 42 R37.htm IDEA: XBRL DOCUMENT v3.20.1
    Earnings Per Share (Details) - USD ($)
    $ / shares in Units, shares in Thousands, $ in Thousands
    3 Months Ended
    Mar. 31, 2020
    Mar. 31, 2019
    Numerator:    
    Net income attributable to Cactus Inc. $ 18,983 $ 26,807
    Net income attributable to non-controlling interest (1) 11,166 17,505
    Net income attributable to Cactus Inc. - diluted (1) $ 30,149 $ 44,312
    Denominator:    
    Effect of dilutive shares (2) 28,125 36,527
    After-tax income attributable to non-controlling interest $ 11,200 $ 17,500
    Corporate effective interest rate, if-converted method 26.00% 24.00%
    Class A Common Stock    
    Denominator:    
    Weighted average Class A Shares Outstanding - basic 47,270 38,719
    Weighted average Class A Shares Outstanding - diluted (2) 75,395 75,246
    Earnings per Class A share - basic $ 0.40 $ 0.69
    Earnings per Class A Share - diluted (1) (2) $ 0.40 $ 0.59
    Class B Common Stock    
    Denominator:    
    Effect of dilutive shares (2) 28,000 36,300

    XML 43 R33.htm IDEA: XBRL DOCUMENT v3.20.1
    Revenue - Disaggregated by category (Details) - USD ($)
    $ in Thousands
    3 Months Ended
    Mar. 31, 2020
    Mar. 31, 2019
    Disaggregation of Revenue [Line Items]    
    Total revenues $ 154,139 $ 158,875
    Revenue as a percentage 100.00% 100.00%
    Product revenue    
    Disaggregation of Revenue [Line Items]    
    Total revenues $ 87,031 $ 86,640
    Revenue as a percentage 57.00% 55.00%
    Rental revenue    
    Disaggregation of Revenue [Line Items]    
    Total revenues $ 36,163 $ 38,497
    Revenue as a percentage 23.00% 24.00%
    Field service and other revenue    
    Disaggregation of Revenue [Line Items]    
    Total revenues $ 30,945 $ 33,738
    Revenue as a percentage 20.00% 21.00%
    XML 44 R18.htm IDEA: XBRL DOCUMENT v3.20.1
    Commitments and Contingencies
    3 Months Ended
    Mar. 31, 2020
    Commitments and Contingencies  
    Commitments and Contingencies

    10.   Commitments and Contingencies

    We are involved in various disputes arising in the ordinary course of business. Management does not believe the outcome of these disputes will have a material adverse effect on our consolidated financial position or consolidated results of operations.

    XML 45 R10.htm IDEA: XBRL DOCUMENT v3.20.1
    Concentrations Risks and Uncertainties
    3 Months Ended
    Mar. 31, 2020
    Concentrations, Risks and Uncertainties  
    Concentrations, Risks and Uncertainties

    2.   Concentrations, Risks and Uncertainties

    Significant Customers

    Our customers are engaged in the oil and natural gas exploration and production business primarily in the U.S. as well as Australia. Our receivables are spread over a number of customers, a majority of which are operators and suppliers to the oil and natural gas industry. For the three months ended March 31, 2020 and 2019, one customer represented 10% and 12%, respectively, of consolidated revenues, and no other customers represented 10% or more of our consolidated revenues during the comparative periods.

    Significant Vendors

    We purchase a significant portion of supplies, equipment and machined components from a single vendor located in China. For the three months ended March 31, 2020 and 2019, purchases from this vendor totaled $2.9 million and $12.7 million, respectively. These figures represent approximately 7% and 20% for the respective periods of our total third-party vendor purchases of raw materials, finished products, equipment, machining and other services. Amounts due to the vendor included in accounts payable in the consolidated balance sheets as of March 31, 2020 and December 31, 2019 totaled $1.9 million and $4.3 million, respectively.

    Low Oil Prices and the Coronavirus (COVID-19)

    The significant decline in oil demand due to COVID-19 coupled with the instability of oil prices caused by geopolitical issues and production levels, as well as limited availability of storage capacity have resulted in our customers announcing significant reductions to their capital expenditure budgets for 2020. Management’s expectation is that demand for our products and services will be severely impacted for the duration of 2020 and potentially beyond; however, we are currently unable to estimate the full impact to our business, how long this significant drop in demand will last or the depth of the decline.

    In an effort to offset the reduction in revenues resulting from the weakened macroeconomic environment, we implemented certain cost reduction measures beginning in March 2020. These measures included, but were not limited to, the following:

    50% reduction to our Chief Executive Officer’s base salary;
    Salary reductions ranging from 25% to 50% for our other named executive officers;
    Salary and wage reductions for the remaining U.S. workforce ranging from 2% to 15% depending on salary and position;
    Reduction in board member compensation by 25%; and
    Reduction of 277 U.S. employee positions.

    We have also reduced our planned capital expenditures for 2020 and implemented additional headcount reductions in April 2020. See further discussion of the April workforce reductions at Note 12.

    Due to the depressed oil price environment, our reduced cash flow projections resulting from expectations of reduced sales and significant declines in our market capitalization, we assessed whether our long-lived assets and

    goodwill may have been impaired as of March 31, 2020. We performed quantitative impairment tests using management’s current projections that are subject to various risks and uncertainties of revenues, expenses and cash flows. Our goodwill impairment assessment also includes assumptions regarding discount rates, terminal value and control premiums. Estimates of future cash flows and fair value are highly subjective and inherently imprecise. These estimates can change materially from period to period based on many factors. Accordingly, if conditions change in the future, we may record impairment losses, which could be material to any particular reporting period. Although we determined based on our current impairment assessments that our long-lived assets and goodwill were not impaired as of March 31, 2020, we can provide no assurance that we will not incur an impairment loss in the future.

    XML 46 R14.htm IDEA: XBRL DOCUMENT v3.20.1
    Debt
    3 Months Ended
    Mar. 31, 2020
    Debt  
    Debt

    6.    Debt

    We had no debt outstanding as of March 31, 2020 and December 31, 2019.

    On August 21, 2018, Cactus LLC entered into a five-year senior secured asset-based revolving credit facility with a syndicate of lenders and JPMorgan Chase Bank, N.A., as administrative agent for such lenders and as an issuing bank and swingline lender (the “ABL Credit Facility”). The ABL Credit Facility provides for $75.0 million in revolving commitments, up to $15.0 million of which is available for the issuance of letters of credit.

    The ABL Credit Facility matures on August 21, 2023. The maximum amount that Cactus LLC may borrow under the ABL Credit Facility is subject to a borrowing base, which is based on a percentage of eligible accounts receivable and eligible inventory, subject to reserves and other adjustments. At March 31, 2020, in accordance with the terms of our borrowing base, we had access to the full $75.0 million revolving credit facility capacity.

    At March 31, 2020 and December 31, 2019, although there were no borrowings outstanding under the ABL Credit Facility, the applicable margin on our Eurodollar borrowings was 1.5% plus an adjusted base rate of one- or three-month LIBOR. We were in compliance with all covenants under the ABL Credit Facility as of March 31, 2020.

    XML 47 R36.htm IDEA: XBRL DOCUMENT v3.20.1
    Equity - Redemptions and Dividends (Details) - USD ($)
    $ / shares in Units, shares in Thousands, $ in Millions
    3 Months Ended 12 Months Ended 14 Months Ended
    Mar. 19, 2020
    Jan. 30, 2020
    Mar. 31, 2020
    Mar. 31, 2019
    Dec. 31, 2019
    Mar. 31, 2019
    Equity            
    Dividends declared per common share     $ 0.09      
    CACTUS INC            
    Equity            
    Cash distributions to unit holders     $ 3.7      
    CW Unit Holders other than Cactus, Inc.            
    Equity            
    Cash distributions to unit holders $ 2.2     $ 0.2    
    Cactus LLC            
    Equity            
    Limited Liability Company or Limited Partnership, Members or Limited Partners, Ownership Interest     62.90%   62.80%  
    March 2019 Secondary Offering            
    Equity            
    Offering expenses       $ 1.0   $ 1.0
    Class A Common Stock            
    Equity            
    Common Stock, Shares, Outstanding     47,398   47,159  
    Shares Outstanding Per Class As Percent Of Total     62.90%      
    Common stock, par value     $ 0.01   $ 0.01  
    Dividends declared per common share   $ 0.09        
    Dividend paid $ 4.3          
    Class A Common Stock | CW Units Redeemed For Class A Common Stock [Member]            
    Equity            
    CW Unit redemptions       8,500   32,600
    Class B Common Stock            
    Equity            
    Common Stock, Shares, Outstanding     27,958   27,958  
    Shares Outstanding Per Class As Percent Of Total     37.10%      
    Common stock, par value     $ 0.01   $ 0.01  
    XML 48 R32.htm IDEA: XBRL DOCUMENT v3.20.1
    Debt - Credit agreement (Details) - USD ($)
    $ in Millions
    3 Months Ended 12 Months Ended
    Aug. 21, 2018
    Mar. 31, 2020
    Dec. 31, 2019
    Long-term Debt      
    Long-term debt outstanding   $ 0.0 $ 0.0
    One-month LIBOR      
    Long-term Debt      
    Applicable margin rate (as a percent)   1.50% 1.50%
    Variable reference rate   one-month LIBOR one-month LIBOR
    Three-month LIBOR      
    Long-term Debt      
    Applicable margin rate (as a percent)   1.50% 1.50%
    Variable reference rate   three-month LIBOR three-month LIBOR
    ABL Credit Facility      
    Long-term Debt      
    Long-term debt outstanding   $ 0.0 $ 0.0
    Revolving credit facility available per borrowing base terms   $ 75.0  
    Cactus LLC | ABL Credit Facility      
    Long-term Debt      
    Debt term 5 years    
    Maximum borrowing capacity $ 75.0    
    Cactus LLC | Letters of credit      
    Long-term Debt      
    Maximum borrowing capacity $ 15.0    
    XML 49 R11.htm IDEA: XBRL DOCUMENT v3.20.1
    Accounts Receivable and Allowance for Credit Losses
    3 Months Ended
    Mar. 31, 2020
    Accounts Receivable and Allowance for Credit Losses  
    Accounts Receivable and Allowance for Credit Losses

    3. Accounts Receivable and Allowance for Credit Losses

    We extend credit to customers in the normal course of business. Our customers are predominantly oil and gas companies in the U.S. Our receivables are short-term in nature and typically due in 30 to 45 days. We do not accrue interest on delinquent receivables. Accounts receivable includes amounts billed and currently due from customers and unbilled amounts for products delivered and services performed for which billings have not yet been submitted to the customers. Total unbilled revenue included in accounts receivable as of March 31, 2020 and December 31, 2019 was $21.5 million and $23.8 million, respectively.

    We maintain an allowance for credit losses to provide for the amount of receivables we do not expect to collect. In our determination of the allowance for credit losses, we pool receivables with similar risk characteristics based on customer size, credit ratings, payment history, bankruptcy status and other factors known to us and apply an expected credit loss percentage. The expected credit loss percentage is determined using historical loss data adjusted for current conditions and forecasts of future economic conditions. Accounts deemed uncollectible are applied against the allowance for credit losses. The following is a rollforward of our allowance for credit losses. The increase in the allowance during the three months ended March 31, 2020 reflects the estimated impact of the current economic environment on our receivable balance.

    Balance at 

    Balance at 

    Beginning of

    Expense

    End of

        

     Period

        

     (recovery)

        

    Write off

        

    Other

        

    Period

    Three Months Ended March 31, 2020

    $

    837

    $

    625

    $

    (32)

    $

    $

    1,430

    Three Months Ended March 31, 2019

     

    576

     

     

     

    2

     

    578

    XML 50 R15.htm IDEA: XBRL DOCUMENT v3.20.1
    Revenue
    3 Months Ended
    Mar. 31, 2020
    Revenue  
    Revenue

    7. Revenue

    The majority of our revenues are derived from short-term contracts for fixed consideration. Product sales generally do not include right of return or other significant post-delivery obligations. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Revenues are recognized when we satisfy a performance obligation by transferring control of the promised goods or providing services to our customers at a point in time, in an amount specified in the contract with our customer and that reflects the consideration we expect to be entitled to in exchange for those goods or services. The majority of our contracts with customers contain a single performance obligation to provide agreed upon products or services. For contracts with multiple performance obligations, we allocate revenue to each performance obligation based on its relative standalone selling price. We do not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract with the customer. We do not incur any material costs of obtaining contracts.

    We do not adjust the amount of consideration per the contract for the effects of a significant financing component when we expect, at contract inception, that the period between the transfer of a promised good or service to a customer and when the customer pays for that good or service will be one year or less, which is in substantially all cases. Payment terms and conditions vary, although terms generally include a requirement of payment within 30 to 45 days. Revenues

    are recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. We treat shipping and handling associated with outbound freight as a fulfillment cost instead of as a separate performance obligation. We recognize the cost for the associated shipping and handling when incurred as an expense in cost of sales.

    We disaggregate revenue into three categories: product revenues, rental revenues and field service and other revenues. We have predominately domestic operations, with a small amount of sales being generated in Australia. The following table presents our revenues disaggregated by category:

    Three Months Ended March 31, 

        

    2020

        

    2019

    Product revenue

    $

    87,031

    57

    %

    $

    86,640

    55

    %

    Rental revenue

    36,163

    23

    %

    38,497

    24

    %

    Field service and other revenue

    30,945

    20

    %

    33,738

    21

    %

    Total revenue

    $

    154,139

    100

    %

    $

    158,875

    100

    %

    At March 31, 2020, we had a deferred revenue balance of $1.5 million compared to the December 31, 2019 balance of $1.4 million. Deferred revenue represents our obligation to transfer products to or perform services for a customer for which we have received cash or billed in advance. The revenue that has been deferred will be recognized upon product delivery or as services are performed. As of March 31, 2020, we did not have any contracts with an original length of greater than a year from which revenue is expected to be recognized in the future related to performance obligations that are unsatisfied.

    XML 51 R19.htm IDEA: XBRL DOCUMENT v3.20.1
    Earnings Per Share
    3 Months Ended
    Mar. 31, 2020
    Earnings Per Share  
    Earnings Per Share

    11. Earnings per Share

    Basic earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during the period by the weighted average number of shares of Class A common stock outstanding during the same period. Diluted earnings per share of Class A common stock is calculated by dividing the net income attributable to Cactus Inc. during that period by the weighted average number of common shares outstanding assuming all potentially dilutive shares were issued.

    We use the “if-converted” method to determine the potential dilutive effect of outstanding CW Units (and corresponding shares of outstanding Class B common stock), and the treasury stock method to determine the potential dilutive effect of unvested restricted stock units assuming that the proceeds will be used to purchase shares of Class A common stock.

    The following table summarizes the basic and diluted earnings per share calculations:

    Three Months Ended
    March 31, 

        

    2020

        

    2019

    Numerator:

     

      

     

      

    Net income attributable to Cactus Inc.—basic

    $

    18,983

    $

    26,807

    Net income attributable to non-controlling interest (1)

    11,166

    17,505

    Net income attributable to Cactus Inc.—diluted (1)

    $

    30,149

    $

    44,312

    Denominator:

     

      

     

      

    Weighted average Class A shares outstanding—basic

     

    47,270

     

    38,719

    Effect of dilutive shares (2)

    28,125

    36,527

    Weighted average Class A shares outstanding—diluted (2)

    75,395

    75,246

    Earnings per Class A share—basic

    $

    0.40

    $

    0.69

    Earnings per Class A share—diluted (1) (2)

    $

    0.40

    $

    0.59

    (1)Under the if-converted method for the three months ended March 31, 2020 and 2019, the numerator is adjusted in the calculation of diluted earnings per share to include $11.2 million and $17.5 million, respectively, attributable to the non-controlling interest calculated as its pre-tax income adjusted for a corporate effective tax rate of 26% and 24%, respectively.
    (2)Diluted earnings per share for the three months ended March 31, 2020 and 2019 includes 28.0 million and 36.3 million, respectively, weighted average shares of Class B common stock assuming conversion, plus the dilutive effect of restricted stock unit awards.
    XML 52 FilingSummary.xml IDEA: XBRL DOCUMENT 3.20.1 html 108 257 1 false 40 0 false 6 false false R1.htm 00090 - Document - Document and Entity Information Sheet http://cactuswellhead.com/role/DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 00100 - Statement - CONSOLIDATED BALANCE SHEETS Sheet http://cactuswellhead.com/role/StatementConsolidatedBalanceSheets CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical) Sheet http://cactuswellhead.com/role/StatementConsolidatedBalanceSheetsParenthetical CONSOLIDATED BALANCE SHEETS (Parenthetical) Statements 3 false false R4.htm 00200 - Statement - CONSOLIDATED STATEMENTS OF INCOME Sheet http://cactuswellhead.com/role/StatementConsolidatedStatementsOfIncome CONSOLIDATED STATEMENTS OF INCOME Statements 4 false false R5.htm 00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Sheet http://cactuswellhead.com/role/StatementConsolidatedStatementsOfComprehensiveIncome CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Statements 5 false false R6.htm 00400 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Sheet http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquity CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Statements 6 false false R7.htm 00405 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) Sheet http://cactuswellhead.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) Statements 7 false false R8.htm 00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://cactuswellhead.com/role/StatementConsolidatedStatementsOfCashFlows CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 8 false false R9.htm 10101 - Disclosure - Preparation of Interim Financial Statements and Other Items Sheet http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItems Preparation of Interim Financial Statements and Other Items Notes 9 false false R10.htm 10201 - Disclosure - Concentrations Risks and Uncertainties Sheet http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertainties Concentrations Risks and Uncertainties Notes 10 false false R11.htm 10301 - Disclosure - Accounts Receivable and Allowance for Credit Losses Sheet http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLosses Accounts Receivable and Allowance for Credit Losses Notes 11 false false R12.htm 10401 - Disclosure - Inventories Sheet http://cactuswellhead.com/role/DisclosureInventories Inventories Notes 12 false false R13.htm 10501 - Disclosure - Property and Equipment, net Sheet http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNet Property and Equipment, net Notes 13 false false R14.htm 10601 - Disclosure - Debt Sheet http://cactuswellhead.com/role/DisclosureDebt Debt Notes 14 false false R15.htm 10701 - Disclosure - Revenue Sheet http://cactuswellhead.com/role/DisclosureRevenue Revenue Notes 15 false false R16.htm 10801 - Disclosure - Tax Receivable Agreement Sheet http://cactuswellhead.com/role/DisclosureTaxReceivableAgreement Tax Receivable Agreement Notes 16 false false R17.htm 10901 - Disclosure - Equity Sheet http://cactuswellhead.com/role/DisclosureEquity Equity Notes 17 false false R18.htm 11001 - Disclosure - Commitments and Contingencies Sheet http://cactuswellhead.com/role/DisclosureCommitmentsAndContingencies Commitments and Contingencies Notes 18 false false R19.htm 11101 - Disclosure - Earnings Per Share Sheet http://cactuswellhead.com/role/DisclosureEarningsPerShare Earnings Per Share Notes 19 false false R20.htm 11201 - Disclosure - Subsequent Events Sheet http://cactuswellhead.com/role/DisclosureSubsequentEvents Subsequent Events Notes 20 false false R21.htm 20102 - Disclosure - Preparation of Interim Financial Statements and Other Items (Policies) Sheet http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies Preparation of Interim Financial Statements and Other Items (Policies) Policies 21 false false R22.htm 30303 - Disclosure - Accounts Receivable and Allowance for Credit Losses (Tables) Sheet http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesTables Accounts Receivable and Allowance for Credit Losses (Tables) Tables http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLosses 22 false false R23.htm 30403 - Disclosure - Inventories (Tables) Sheet http://cactuswellhead.com/role/DisclosureInventoriesTables Inventories (Tables) Tables http://cactuswellhead.com/role/DisclosureInventories 23 false false R24.htm 30503 - Disclosure - Property and Equipment, net (Tables) Sheet http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetTables Property and Equipment, net (Tables) Tables http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNet 24 false false R25.htm 30703 - Disclosure - Revenue (Tables) Sheet http://cactuswellhead.com/role/DisclosureRevenueTables Revenue (Tables) Tables http://cactuswellhead.com/role/DisclosureRevenue 25 false false R26.htm 31103 - Disclosure - Earnings Per Share (Tables) Sheet http://cactuswellhead.com/role/DisclosureEarningsPerShareTables Earnings Per Share (Tables) Tables http://cactuswellhead.com/role/DisclosureEarningsPerShare 26 false false R27.htm 40101 - Disclosure - Preparation of Interim Financial Statements and Other Items (Details) Sheet http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsDetails Preparation of Interim Financial Statements and Other Items (Details) Details http://cactuswellhead.com/role/DisclosurePreparationOfInterimFinancialStatementsAndOtherItemsPolicies 27 false false R28.htm 40201 - Disclosure - Concentrations Risks and Uncertainties (Details) Sheet http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertaintiesDetails Concentrations Risks and Uncertainties (Details) Details http://cactuswellhead.com/role/DisclosureConcentrationsRisksAndUncertainties 28 false false R29.htm 40301 - Disclosure - Accounts Receivable and Allowance for Credit Losses (Details) Sheet http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesDetails Accounts Receivable and Allowance for Credit Losses (Details) Details http://cactuswellhead.com/role/DisclosureAccountsReceivableAndAllowanceForCreditLossesTables 29 false false R30.htm 40401 - Disclosure - Inventories (Details) Sheet http://cactuswellhead.com/role/DisclosureInventoriesDetails Inventories (Details) Details http://cactuswellhead.com/role/DisclosureInventoriesTables 30 false false R31.htm 40501 - Disclosure - Property and Equipment, net (Details) Sheet http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetDetails Property and Equipment, net (Details) Details http://cactuswellhead.com/role/DisclosurePropertyAndEquipmentNetTables 31 false false R32.htm 40601 - Disclosure - Debt - Credit agreement (Details) Sheet http://cactuswellhead.com/role/DisclosureDebtCreditAgreementDetails Debt - Credit agreement (Details) Details 32 false false R33.htm 40702 - Disclosure - Revenue - Disaggregated by category (Details) Sheet http://cactuswellhead.com/role/DisclosureRevenueDisaggregatedByCategoryDetails Revenue - Disaggregated by category (Details) Details 33 false false R34.htm 40703 - Disclosure - Revenue - Contracts with customers (Details) Sheet http://cactuswellhead.com/role/DisclosureRevenueContractsWithCustomersDetails Revenue - Contracts with customers (Details) Details 34 false false R35.htm 40801 - Disclosure - Tax Receivable Agreement (Details) Sheet http://cactuswellhead.com/role/DisclosureTaxReceivableAgreementDetails Tax Receivable Agreement (Details) Details http://cactuswellhead.com/role/DisclosureTaxReceivableAgreement 35 false false R36.htm 40901 - Disclosure - Equity - Redemptions and Dividends (Details) Sheet http://cactuswellhead.com/role/DisclosureEquityRedemptionsAndDividendsDetails Equity - Redemptions and Dividends (Details) Details 36 false false R37.htm 41101 - Disclosure - Earnings Per Share (Details) Sheet http://cactuswellhead.com/role/DisclosureEarningsPerShareDetails Earnings Per Share (Details) Details http://cactuswellhead.com/role/DisclosureEarningsPerShareTables 37 false false R38.htm 41201 - Disclosure - Subsequent Events (Details) Sheet http://cactuswellhead.com/role/DisclosureSubsequentEventsDetails Subsequent Events (Details) Details http://cactuswellhead.com/role/DisclosureSubsequentEvents 38 false false All Reports Book All Reports whd-20200430x10q.htm whd-20200331xex31d1.htm whd-20200331xex31d2.htm whd-20200331xex32d1.htm whd-20200331xex32d2.htm whd-20200331xex3d2.htm whd-20200430.xsd whd-20200430_cal.xml whd-20200430_def.xml whd-20200430_lab.xml whd-20200430_pre.xml http://fasb.org/srt/2019-01-31 http://xbrl.sec.gov/dei/2019-01-31 http://fasb.org/us-gaap/2019-01-31 true true XML 53 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 54 R23.htm IDEA: XBRL DOCUMENT v3.20.1
    Inventories (Tables)
    3 Months Ended
    Mar. 31, 2020
    Inventories  
    Summary of inventories

    March 31, 

    December 31, 

        

    2020

        

    2019

    Raw materials

    $

    1,702

    $

    1,538

    Work-in-progress

     

    3,857

     

    4,619

    Finished goods

     

    94,742

     

    107,214

    $

    100,301

    $

    113,371

    XML 55 R27.htm IDEA: XBRL DOCUMENT v3.20.1
    Preparation of Interim Financial Statements and Other Items (Details) - $ / shares
    Mar. 31, 2020
    Dec. 31, 2019
    Class A Common Stock    
    Organization and Nature of Operations    
    Common stock, par value $ 0.01 $ 0.01
    Class B Common Stock    
    Organization and Nature of Operations    
    Common stock, par value $ 0.01 $ 0.01
    XML 56 R6.htm IDEA: XBRL DOCUMENT v3.20.1
    CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)
    shares in Thousands, $ in Thousands
    Class A Common Stock
    Common stock
    Class B Common Stock
    Common stock
    Additional Paid-In Capital
    Retained Earnings
    Accumulated Other Comprehensive Income (Loss)
    Non-controlling Interest
    Total
    Balance at the beginning of the period at Dec. 31, 2018 $ 377   $ 126,418 $ 51,683 $ (820) $ 184,670 $ 362,328
    Balance at the beginning of the period (shares) at Dec. 31, 2018 37,654 37,236          
    Statement of Stockholders'/Members' Equity              
    Adjustments to prior periods     14,035   488 (14,523)  
    Member distribution           (235) (235)
    Effect of CW Unit redemptions $ 85   43,899   (50) (43,934)  
    Effect of CW Unit redemptions (in shares) 8,518 (8,518)          
    Adjustment to deferred tax asset from CW Unit redemptions     (8,232)       (8,232)
    Additional paid-in capital related to tax receivable agreement     13,580       13,580
    Equity award vestings $ 2   (1,474)       (1,472)
    Equity award vestings (in shares) 219            
    Other comprehensive income (loss)         123 147 270
    Stock-based compensation     1,676       1,676
    Net income       26,807   21,639 48,446
    Balance at the end of the period at Mar. 31, 2019 $ 464   189,902 78,490 (259) 147,764 416,361
    Balance at the end of the period (shares) at Mar. 31, 2019 46,391 28,718          
    Balance at the beginning of the period at Dec. 31, 2019 $ 472   194,456 132,990 (452) 188,929 516,395
    Balance at the beginning of the period (shares) at Dec. 31, 2019 47,159 27,958          
    Statement of Stockholders'/Members' Equity              
    Member distribution           (2,203) (2,203)
    Additional paid-in capital related to tax receivable agreement     (94)       (94)
    Equity award vestings $ 2   (221)     (1,138) (1,357)
    Equity award vestings (in shares) 239            
    Other comprehensive income (loss)         (615) (468) (1,083)
    Stock-based compensation     1,240     733 1,973
    Cash dividends declared       (4,303)     (4,303)
    Net income       18,983   14,115 33,098
    Balance at the end of the period at Mar. 31, 2020 $ 474   $ 195,381 $ 147,670 $ (1,067) $ 199,968 $ 542,426
    Balance at the end of the period (shares) at Mar. 31, 2020 47,398 27,958          
    XML 57 R2.htm IDEA: XBRL DOCUMENT v3.20.1
    CONSOLIDATED BALANCE SHEETS - USD ($)
    $ in Thousands
    Mar. 31, 2020
    Dec. 31, 2019
    Current assets    
    Cash and cash equivalents $ 230,202 $ 202,603
    Accounts receivable, net of allowance of $1,430 and $837, respectively 95,236 87,865
    Inventories 100,301 113,371
    Prepaid expenses and other current assets 9,535 11,044
    Total current assets 435,274 414,883
    Property and equipment, net 162,871 161,748
    Operating lease right-of-use assets, net 24,872 26,561
    Goodwill 7,824 7,824
    Deferred tax asset, net 217,916 222,545
    Other noncurrent assets 1,338 1,403
    Total assets 850,095 834,964
    Current liabilities    
    Accounts payable 34,476 40,957
    Accrued expenses and other current liabilities 19,275 22,067
    Current portion of liability related to tax receivable agreement 14,630 14,630
    Finance lease obligations, current portion 6,498 6,735
    Operating lease liabilities, current portion 6,535 6,737
    Total current liabilities 81,414 91,126
    Deferred tax liability, net 1,511 1,348
    Liability related to tax receivable agreement, net of current portion 201,902 201,902
    Finance lease obligations, net of current portion 4,033 3,910
    Operating lease liabilities, net of current portion 18,809 20,283
    Total liabilities 307,669 318,569
    Commitments and contingencies
    Stockholders' equity    
    Preferred stock, $0.01 par value, 10,000 shares authorized, none issued and outstanding
    Additional paid-in capital 195,381 194,456
    Retained earnings 147,670 132,990
    Accumulated other comprehensive loss (1,067) (452)
    Total stockholders' equity attributable to Cactus Inc. 342,458 327,466
    Non-controlling interest 199,968 188,929
    Total stockholders' equity 542,426 516,395
    Total liabilities and equity 850,095 834,964
    Class A Common Stock    
    Stockholders' equity    
    Common stock, $0.01 par value 474 472
    Class B Common Stock    
    Stockholders' equity    
    Common stock, $0.01 par value
    XML 58 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)}}}