<SEC-DOCUMENT>0001171843-19-005371.txt : 20190809
<SEC-HEADER>0001171843-19-005371.hdr.sgml : 20190809
<ACCEPTANCE-DATETIME>20190809091621
ACCESSION NUMBER:		0001171843-19-005371
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		77
CONFORMED PERIOD OF REPORT:	20190630
FILED AS OF DATE:		20190809
DATE AS OF CHANGE:		20190809

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			UFP TECHNOLOGIES INC
		CENTRAL INDEX KEY:			0000914156
		STANDARD INDUSTRIAL CLASSIFICATION:	PLASTICS FOAM PRODUCTS [3086]
		IRS NUMBER:				042314970
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-Q
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-12648
		FILM NUMBER:		191011500

	BUSINESS ADDRESS:	
		STREET 1:		100 HALE STREET
		CITY:			NEWBURYPORT
		STATE:			MA
		ZIP:			01950
		BUSINESS PHONE:		978-352-2200

	MAIL ADDRESS:	
		STREET 1:		100 HALE STREET
		CITY:			NEWBURYPORT
		STATE:			MA
		ZIP:			01950
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>f10q_080919p.htm
<DESCRIPTION>FORM 10-Q
<TEXT>
<HTML><HEAD>
     <TITLE></TITLE>
</HEAD><BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<div contenteditable="false" docsect="2" id="custom" sectdesc="Cover Page">&nbsp;</div>
<div data-td-statement-type="cover" data-td-v2v-id="1000000000000">&nbsp;</div>




<p style="margin: 0"></p>

<p style="margin: 0; font-size: 10pt; text-align: center">UNITED STATES SECURITIES AND EXCHANGE COMMISSION</p>

<p style="margin: 0; font-size: 10pt; text-align: center">Washington, D.C. 20549</p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>FORM 10-Q</b></p>

<p style="margin: 0; font-size: 10pt">(Mark one)</p>

<p style="margin: 0 0 0 22.5pt; font-size: 10pt; text-indent: -22.5pt">[X] QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF
THE SECURITIES EXCHANGE ACT OF 1934</p>

<p style="margin: 0 0 0 22.5pt; font-size: 10pt; text-indent: 0.75in">For the quarterly period ended <u>&nbsp;&nbsp;&nbsp;&nbsp;<font style="text-transform: uppercase"><b>JUNE
30, 2019&nbsp;&nbsp; &nbsp;</b></font></u></p>

<p style="margin: 6pt 0; font-size: 10pt; text-align: center">OR</p>

<p style="margin: 0 0 0 0.25in; font-size: 10pt; text-indent: -0.25in">[ ] TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF
THE SECURITIES EXCHANGE ACT OF 1934</p>

<p style="margin: 0 0 0 0.25in; font-size: 10pt; text-indent: 0.75in">For the transition period from ____ to ____</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Commission File Number: <b><u>001-12648</u></b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b><u>UFP Technologies, Inc.</u></b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Exact name of registrant as specified in its charter)</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; font-size: 10pt; border-collapse: collapse">
<tr style="vertical-align: top">
    <td style="width: 60%; font-size: 10pt; text-align: center"><font style="font-size: 10pt"><b><u>Delaware</u></b></font></td>
    <td style="width: 40%; font-size: 10pt; text-align: center"><font style="font-size: 10pt"><b><u>04-2314970</u></b></font></td></tr>
<tr style="vertical-align: top">
    <td style="font-size: 10pt; text-align: center"><font style="font-size: 10pt">(State or other jurisdiction of incorporation or organization)</font></td>
    <td style="font-size: 10pt; text-align: center"><font style="font-size: 10pt">(I.R.S. Employer Identification No.)</font></td></tr>
</table>
<p style="margin: 6pt 0 0; font-size: 10pt; text-align: center"><b><u>100 Hale Street, Newburyport, MA 01950, USA</u></b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Address of principal executive offices) (Zip Code)</p>

<p style="margin: 6pt 0 0; font-size: 10pt; text-align: center"><b><u>(978) 352-2200</u></b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Registrant's telephone number, including area code)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">_________________________________________</p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Former name, former address, and former fiscal year, if changed since
last report)</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">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.</p>

<p style="margin: 6pt 0 0 0.3in; font-size: 10pt">Yes <u>&nbsp;&nbsp;&nbsp;X&nbsp;&nbsp;&nbsp;</u>; No ____</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><font style="color: windowtext">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</font> (&#167;232.405
of this chapter) <font style="color: windowtext">during the preceding 12 months (or for such shorter period that the registrant
was required to submit such files).</font></p>

<p style="margin: 6pt 0 0 0.3in; font-size: 10pt">Yes <u>&nbsp;&nbsp;&nbsp;X&nbsp;&nbsp;&nbsp;</u>; No ____</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated
filer, a non-accelerated filer, smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated
filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221;
in Rule&nbsp;12b-2 of the Exchange Act.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr>
    <td style="width: 56%"><font style="font-size: 10pt">Large&nbsp;accelerated&nbsp;filer&nbsp;&#9744;</font></td>
    <td style="vertical-align: top; width: 44%"><font style="font-size: 10pt">Accelerated&nbsp;filer&nbsp;&#9746;</font></td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">Non-accelerated filer&nbsp;&#9744;&nbsp; </font></td>
    <td><font style="font-size: 10pt">Smaller&nbsp;reporting&nbsp;company&nbsp;&#9746;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td><font style="font-size: 10pt">Emerging growth company&nbsp;&#9744;&nbsp;&nbsp;</font></td></tr>
</table>
<p style="margin: 0 0 0 0.25in; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">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.	&#9744;</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2
of the Exchange Act).</p>

<p style="margin: 6pt 0 0 0.3in; font-size: 10pt">Yes ____; No <u>&nbsp;&nbsp;&nbsp;X&nbsp;&nbsp;&nbsp;</u></p>

<p style="margin: 6pt 0; font-size: 10pt">Securities registered pursuant to Section 12(b) of the Act:</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr>
    <td style="width: 39%; border: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Title of each class</font></td>
    <td style="width: 24%; border-top: Black 1pt solid; border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Trading Symbol(s)</font></td>
    <td style="width: 37%; border-top: Black 1pt solid; border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Name of each exchange<br>
on which registered</font></td></tr>
<tr style="vertical-align: top">
    <td style="border-right: Black 1pt solid; border-bottom: Black 1pt solid; border-left: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Common Stock</font></td>
    <td style="border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">UFPT</font></td>
    <td style="border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">The NASDAQ Stock Market L.L.C.</font></td></tr>
</table>
<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">7,428,229 shares of registrant&#8217;s Common Stock, $0.01 par value, were outstanding as
of August 1, 2019.</p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b></b></p>

<!-- Field: Page; Sequence: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><p style="margin: 0pt">&nbsp;</p></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt; text-align: center"><b>UFP Technologies, Inc.</b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b><u>Index</u></b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b><u></u></b></p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr>
    <td style="vertical-align: bottom; width: 94%">&nbsp;</td>
    <td style="text-decoration: underline; vertical-align: middle; text-align: center; width: 6%">Page</td></tr>
<tr>
    <td style="font-style: italic; vertical-align: middle; text-align: center">&nbsp;</td>
    <td style="vertical-align: bottom; text-align: center">&nbsp;</td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt"><a href="#a_001">PART I - FINANCIAL INFORMATION</a></td>
    <td style="text-align: center"><a href="#a_001">3</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 10pt"><a href="#a_002">Item 1.&nbsp;&nbsp;Financial Statements</a></td>
    <td style="text-align: center"><a href="#a_002">3</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 20pt"><a href="#a_003">Condensed Consolidated Balance Sheets as of June 30, 2019 (unaudited) and&nbsp;December 31, 2018</a></td>
    <td style="text-align: center"><a href="#a_003">3</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 20pt"><a href="#a_004">Condensed Consolidated Statements of Income for the Three and Six Months Ended June 30, 2019 and&nbsp;June 30, 2018 (unaudited)</a></td>
    <td style="text-align: center"><a href="#a_004">4</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 20pt"><a href="#a_005">Condensed Consolidated Statements of Stockholders&#8217; Equity for the Three and Six Months Ended June 30, 2019 and&nbsp;June 30, 2018 (unaudited)</a></td>
    <td style="text-align: center"><a href="#a_005">5</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 20pt"><a href="#a_006">Condensed Consolidated Statements of Cash Flows for the Six Months Ended June 30, 2019 and&nbsp;June 30, 2018 (unaudited)</a></td>
    <td style="text-align: center"><a href="#a_006">6</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 20pt"><a href="#a_007">Notes to Interim Condensed Consolidated Financial Statements</a></td>
    <td style="text-align: center"><a href="#a_007">7</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 10pt"><a href="#a_008">Item 2.&nbsp;&nbsp;Management's Discussion and Analysis of Financial Condition and Results of Operations</a></td>
    <td style="text-align: center"><a href="#a_008">18</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 10pt"><a href="#a_009">Item 4.&nbsp;&nbsp;Controls and Procedures</a></td>
    <td style="text-align: center"><a href="#a_009">22</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt"><a href="#a_010">PART II - OTHER INFORMATION</a></td>
    <td style="text-align: center"><a href="#a_010">23</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 10pt"><a href="#a_011">Item 1A. Risk Factors</a></td>
    <td style="text-align: center"><a href="#a_011">23</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 10pt"><a href="#a_012">Item 2.&nbsp;&nbsp;&nbsp;&nbsp;Unregistered Sales of Equity Securities and Use of Proceeds</a></td>
    <td style="text-align: center"><a href="#a_012">23</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt; padding-left: 10pt"><a href="#a_013">Item 6. &nbsp;&nbsp;&nbsp;Exhibits</a></td>
    <td style="text-align: center"><a href="#a_013">23</a></td></tr>
<tr style="vertical-align: middle">
    <td style="padding-top: 3pt; padding-bottom: 3pt"><a href="#a_014">Signatures</a>&nbsp;</td>
    <td style="text-align: center"><a href="#a_014">24</a></td></tr>
</table>


<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b><u></u></b></p>

<p style="margin: 0; font-size: 10pt; text-align: right"></p>

<!-- Field: Page; Sequence: 2 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><p style="margin: 0pt">&nbsp;</p></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt; text-align: right"></p>

<p style="margin: 0; font-size: 10pt; text-align: right"></p>

<p style="margin: 0; font-size: 10pt; text-align: left"></p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt"></p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; border-collapse: collapse">
<tr style="vertical-align: middle">
    <td style="font-size: 10pt; font-weight: bold; width: 10%"><a name="a_001"></a>PART I:&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; width: 90%">FINANCIAL INFORMATION</td></tr>
<tr style="vertical-align: middle">
    <td style="font-size: 10pt; font-weight: bold"><a name="a_002"></a>ITEM 1:</td>
    <td style="font-size: 10pt; font-weight: bold">FINANCIAL STATEMENTS</td></tr>
</table>


<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt"></p>


<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b><a name="a_003"></a>UFP Technologies, Inc.</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>Condensed Consolidated Balance Sheets</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(In thousands, except share data)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Unaudited)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"></p>

<div data-td-taggable-table="" data-td-statement-type="balance-sheet"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br> 2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31, <br> 2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: center">Assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Current assets:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 10pt">Cash and cash equivalents</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">5,231</td><td style="width: 1%; font-size: 10pt; text-align: left"></td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">3,238</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Receivables, less allowance for doubtful accounts of $501 at June 30, 2019 and $564 at December 31, 2018</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30,681</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">28,321</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Inventories</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">19,038</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">19,576</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Prepaid expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,267</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,206</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Refundable income taxes</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">717</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,285</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Total current assets</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">57,934</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">55,626</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Property, plant and equipment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">113,866</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">111,779</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Less accumulated depreciation and amortization</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(56,520</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(54,112</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Net property, plant and equipment</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">57,346</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">57,667</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">Goodwill</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">51,838</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">51,838</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Intangible assets, net</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">21,603</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">22,232</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Non-qualified deferred compensation plan</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,573</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,034</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Operating lease right of use assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,531</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Other assets</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">140</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">201</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 20pt">Total assets</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">194,965</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">189,598</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: center">Liabilities and Stockholders&#8217; Equity</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Current liabilities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts payable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">5,895</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,836</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Accrued expenses</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,504</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8,458</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Deferred revenue</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,951</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,507</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Operating lease liabilities</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">984</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Current portion of long-term debt</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,571</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,857</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Total current liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">20,905</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">20,658</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Long-term debt, excluding current portion</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">13,857</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">22,286</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Deferred income taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,966</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,129</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Non-qualified deferred compensation plan</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,595</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,044</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Operating lease liabilities</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,598</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Other liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">390</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">24</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Total liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">45,311</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">49,141</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Commitments and contingencies</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Stockholders&#8217; equity:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Preferred stock, $.01 par value, 1,000,000 shares
    authorized; no shares issued</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 20pt; text-indent: -10pt">Common stock, $.01 par value, 20,000,000 shares
    authorized; 7,457,788 and 7,428,229 shares issued and outstanding, respectively at June 30, 2019;&nbsp;&nbsp;7,415,002 and
    7,385,443 shares issued and outstanding, respectively at December 31, 2018</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Additional paid-in capital</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30,033</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">29,168</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Retained earnings</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">120,134</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">111,802</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Treasury stock at cost,
    29,559 shares at June 30, 2019 and 29,559 shares at December 31, 2018</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Total stockholders&#8217; equity</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">149,654</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">140,457</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total liabilities and stockholders' equity</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">194,965</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">189,598</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>







<p style="margin: 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><br>
The accompanying notes are an integral part of these condensed consolidated financial statements.</p>

<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"></p>

<!-- Field: Page; Sequence: 3; Options: NewSection; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->3<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt; text-align: center"><b><a name="a_004"></a>UFP Technologies, Inc.</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>Condensed Consolidated Statements of Income</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(In thousands, except per share data)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Unaudited)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"></p>

<div data-td-taggable-table="" data-td-statement-type="income"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">51,399</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">49,019</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">98,726</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">91,949</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt">Cost of sales</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">37,028</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">36,033</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">71,859</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">68,779</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Gross profit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14,371</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12,986</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">26,867</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">23,170</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Selling, general &amp; administrative expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,799</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,417</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">15,043</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14,008</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Acquisition-related costs</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">19</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,089</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Material overcharge settlement</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(104</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(104</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Gain on sale of fixed assets</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(15</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(55</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Operating income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">6,572</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,669</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11,824</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8,232</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Interest income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(7</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(32</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Interest expense</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">194</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">404</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">425</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">677</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Other expense (income)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">198</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(3</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">437</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(53</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Income before income tax expense</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">6,180</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,275</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10,962</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,640</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Income tax expense</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,582</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,285</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,630</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,873</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Net income</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">4,598</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">3,990</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">8,332</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">5,767</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-style: italic; text-align: left">Net income per share:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Basic</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.62</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.54</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.12</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.79</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Diluted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.62</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.54</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.11</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.78</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-style: italic; text-align: left">Weighted average common shares outstanding:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Basic</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,423</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,347</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,413</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,336</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Diluted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,467</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,413</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,473</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,408</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;&nbsp;</p>

<p style="margin-top: 0; text-align: left; margin-bottom: 0; font-size: 10pt">The accompanying notes are an integral part of these condensed consolidated financial statements.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 4; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b><a name="a_005"></a>UFP TECHNOLOGIES, INC.</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>Condensed Consolidated Statements of Stockholders&#8217; Equity</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(In thousands)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Unaudited)</p>

<p style="font-size: 10pt; text-align: center; margin: 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0"></p>

<div data-td-taggable-table="" data-td-statement-type="stockholders-equity"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td colspan="29" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six-Month Period Ended June 30, 2019</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Additional</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Common Stock</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Paid-in</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Retained</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Treasury Stock</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Stockholders'</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Capital</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Earnings</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Equity</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 30%; font-size: 10pt; font-weight: bold">Balance at January 1, 2019</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">7,385</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">74</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">29,168</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">111,802</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">30</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">(587</td><td style="width: 1%; font-size: 10pt; text-align: left">)</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">140,457</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">20</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">294</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">294</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">17</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">285</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">285</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Net share settlement of restricted stock units and stock option tax
    withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(8</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(271</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(271</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,734</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,734</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold">Balance at March 31, 2019</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,414</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">29,476</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">115,536</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(587</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">144,499</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">402</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">402</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">155</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">155</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Net share settlement of restricted stock units and stock option tax
    withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4,598</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4,598</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; padding-bottom: 2.25pt">Balance at June 30, 2019</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">7,428</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">74</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">30,033</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">120,134</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">30</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">149,654</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold; text-align: center"></td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
</table></div>

<p style="margin-top: 0; text-align: center; margin-bottom: 0"></p>

<div data-td-taggable-table="" data-td-statement-type="stockholders-equity"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td colspan="29" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"><b>Six-Month Period Ended June 30, 2018</b></td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Additional</td><td style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Common Stock</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Paid-in</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Retained</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Treasury Stock</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Stockholders'</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Capital</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Earnings</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Equity</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 30%; font-size: 10pt; font-weight: bold">Balance at January 1, 2018</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">7,280</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">73</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">26,664</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">97,562</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">30</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">(587</td><td style="width: 1%; font-size: 10pt; text-align: left">)</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">123,712</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">16</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">237</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">237</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">367</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">367</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Net share settlement of restricted stock units and stock option tax
    withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(5</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(144</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(144</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Excess tax benefits on share-based compensation - adjustment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">167</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">167</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Adoption of ASC 606</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(95</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(95</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,777</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,777</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold">Balance at March 31, 2018</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,321</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">73</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">27,291</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">99,244</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(587</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">126,021</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">453</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">454</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">35</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">597</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">597</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Net share settlement of restricted stock units and stock option tax
    withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt; text-indent: -10pt">Excess tax benefits on share-based compensation - adjustment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Adoption of ASC 606</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">24</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">24</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,990</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,990</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; padding-bottom: 2.25pt">Balance at June 30, 2018</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">7,359</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">74</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">28,341</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">103,258</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">30</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 2.25pt; border-bottom: Black 2.25pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">131,086</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>






<p style="font-size: 10pt; text-align: center; margin: 0"></p>

<p style="margin: 0; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0; font-size: 10pt; text-indent: 52.5pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The accompanying notes are an integral part of these consolidated financial statements.</p>

<p style="margin: 0 0 0 2.5in; font-size: 10pt; text-indent: 22.5pt"><b>&nbsp;</b></p>

<p style="margin: 0 0 0 2.5in; font-size: 10pt; text-indent: 22.5pt"><b></b></p>

<!-- Field: Page; Sequence: 5; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->5<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin-top: 0; text-align: center; margin-bottom: 0; font-size: 10pt"><b><a name="a_006"></a>UFP Technologies, Inc.</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>Condensed Consolidated Statements of Cash Flows</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center">(In thousands)</p>

<p style="margin: 0; font-size: 10pt; text-align: center">(Unaudited)</p>

<p style="margin: 6pt 0 0; font-size: 10pt"></p>

<div data-td-taggable-table="" data-td-statement-type="cash-flows"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: left">Cash flows from operating activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 74%; font-size: 10pt; text-align: left">Net income</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">8,332</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">5,767</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Adjustments to reconcile net income to net cash provided by operating activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Depreciation and amortization</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,050</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,874</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Gain on sale of fixed assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(55</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">696</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">691</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Deferred income taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">837</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">688</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Changes in operating assets and liabilities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Receivables, net</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,360</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(4,414</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Inventories</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">538</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,451</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Prepaid expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(61</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(149</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Refundable income taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,568</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">401</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Other assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(178</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(248</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts payable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,222</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,907</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accrued expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,005</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Deferred revenue</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">444</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">286</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Non-qualified deferred compensation plan and other liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(316</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">155</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Net cash provided by operating activities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">12,358</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">7,447</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: left">Cash flows from investing activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Additions to property, plant, and equipment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,819</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,991</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Acquisition of Dielectrics, net of cash acquired</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(76,978</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Proceeds from sale of fixed assets</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">68</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Net cash used in investing activities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,819</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(79,901</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold; text-align: left">Cash flows from financing activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Proceeds from advances on revolving line of credit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">36,000</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Payments on revolving line of credit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(7,000</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(15,000</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Proceeds from the issuance of long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">20,000</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Principal repayments of long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(715</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,429</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Proceeds from exercise of stock options, net of shares
    presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">440</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">964</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Payment of statutory withholdings for
    stock options exercised and restricted stock units vested</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(271</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(144</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Net cash (used in) provided by financing activities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(7,546</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">40,391</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Net increase (decrease) in cash and cash equivalents</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,993</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(32,063</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: left; padding-bottom: 1pt; padding-left: 20pt">Cash and cash equivalents at beginning of period</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,238</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">37,978</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold; text-align: left; padding-bottom: 2.25pt; padding-left: 20pt">Cash and cash equivalents at end of period</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">5,231</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">5,915</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 6pt 0 0; font-size: 10pt"></p>

<p style="margin: 6pt 0 0; font-size: 10pt">The accompanying notes are an integral part of these condensed consolidated financial
statements.</p>

<p style="font-size: 10pt; text-align: center; margin: 0">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"></p>

<!-- Field: Page; Sequence: 6; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->6<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt; text-align: center"><b><a name="a_007"></a>Notes to Interim Condensed Consolidated Financial Statements</b></p>

<p style="font-size: 10pt; margin: 0"><b>&nbsp;</b></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(1)</b></td><td><font style="font-size: 10pt"><b>Basis of Presentation</b></font></td></tr></table>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The interim condensed consolidated financial statements of UFP Technologies,&nbsp;Inc.
(the &#8220;Company&#8221;) presented herein, have been prepared pursuant to the rules&nbsp;of the Securities and Exchange Commission
for quarterly reports on Form&nbsp;10-Q and do not include all the information and note disclosures required by accounting principles
generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial
statements and notes thereto for the year ended December 31, 2018, included in the Company's 2018 Annual Report on Form&nbsp;10-K,
as filed with the Securities and Exchange Commission.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The condensed consolidated balance sheets as of June 30, 2019 and December 31, 2018,
the condensed consolidated statements of income for the three- and six-month periods ended June 30, 2019 and 2018, the condensed
consolidated statements of stockholders&#8217; equity for the three- and six-month periods ended June 30, 2019 and 2018, and the
condensed consolidated statements of cash flows for the six-month periods ended June 30, 2019 and 2018 are unaudited but, in the
opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation
of results for these interim periods. The condensed consolidated balance sheet as of December 31, 2018 has been derived from the
Company&#8217;s annual financial statements that were audited by an independent registered public accounting firm but does not
include all of the information and footnotes required for complete annual financial statements.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The preparation of financial statements in conformity with accounting principles
generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported
amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and
the reported amounts of revenues and expenses during the reporting period.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The results of operations for the three- and six-month periods ended June 30, 2019
are not necessarily indicative of the results to be expected for the entire fiscal year ending December&nbsp;31, 2019.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><i>Recent Accounting Pronouncements</i></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0 0 12pt 27.35pt; font-size: 10pt"><font style="background-color: white">In February 2016, the Financial Accounting
Standards Board (FASB) issued Accounting Standards Update (ASU)&nbsp;No.&nbsp;2016-02,&nbsp;&#8220;<i>Leases (Accounting Standards
Codification (ASC) 842),</i>&#8221; and issued subsequent amendments to the initial guidance in January 2018 within ASU&nbsp;No.&nbsp;2018-01&nbsp;and
in July 2018 within ASU Nos.&nbsp;2018-10&nbsp;and&nbsp;2018-11. </font>The Company adopted ASC 842 on January 1, 2019. See Note
7 for further details.</p>

<p style="margin: 0 0 12pt 27.35pt; font-size: 10pt"><font style="background-color: white">In January 2017, the FASB issued ASU&nbsp;No.&nbsp;2017-04,&nbsp;<i>Intangibles&#8212;Goodwill
and Other (ASC 350), Simplifying the Test for Goodwill Impairment</i>. The guidance removes Step 2 of the goodwill impairment test
and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill
impairment will now be the amount by which a reporting unit&#8217;s carrying value exceeds its fair value, not to exceed the carrying
amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative
impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment
tests in fiscal years beginning after December&nbsp;15, 2019. Early adoption is permitted for any impairment tests performed on
testing dates after January&nbsp;1, 2017. The Company does not believe adoption will have a material impact on its financial condition
or results of operations.</font></p>

<p style="margin: 0 0 12pt 27.35pt; font-size: 10pt"><i>Revisions</i></p>

<p style="margin: 0 0 12pt 27.35pt; font-size: 10pt">Certain revisions have been made to the Condensed Consolidated Statements
of Cash Flows for the six months ended June 30, 2018, due to a reclassification of deferred <font style="color: windowtext">revenue.
The reclassification resulted in a decrease to the change in deferred revenue and a decrease in the change in accrued expenses
in the amount of approximately $573 thousand. These revisions had no impact on previously reported net income and are deemed immaterial
to the previously issued financial statements.</font></p></div><p style="margin: 0 0 12pt 27.35pt; font-size: 10pt"><font style="color: windowtext"></font></p>

<!-- Field: Page; Sequence: 7; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->7<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 12pt 27.35pt; font-size: 10pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(2)</b></td><td><font style="font-size: 10pt"><b>Revenue Recognition</b></font></td></tr></table>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 12pt 27.35pt; font-size: 10pt">The Company recognizes revenue when a customer obtains control of a promised
good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange
for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC 606 which include
(1) identifying the contract with a customer, (2) identifying separate performance obligations within the contract, (3) determining
the transaction price, (4) allocating the transaction price to the performance obligations, and (5) recognizing revenue. The Company
recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling
and machinery primarily upon customer acceptance, except for certain tooling where control does not transfer to the customer,
which results in revenue being recognized over the estimated time for which parts are produced with the use of each respective
tool. The Company recognizes revenue from engineering services as the services are performed. Although only applicable to an insignificant
number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to
account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale not
as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise
to transfer the good and are expensed when revenue is recognized.&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><i>Disaggregated Revenue</i></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">The following table presents the Company&#8217;s revenue disaggregated by the
major types of goods and services sold to the Company&#8217;s customers (in thousands):</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid">Net sales of:</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt">Products</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">50,576</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">47,102</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">96,984</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">89,246</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Tooling and Machinery</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">323</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,107</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">969</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,598</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Engineering services</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">500</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">810</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">773</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,105</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total net sales</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">51,399</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">49,019</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">98,726</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">91,949</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><i>Contract balances</i></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">Timing of revenue recognition may differ from the timing of invoicing to customers.
When invoicing occurs prior to revenue recognition, the Company has deferred revenue, or contract liabilities, included within
&#8220;deferred revenue&#8221; on the condensed consolidated balance sheet.</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">The following table presents opening and closing balances of contract liabilities
for the six-month periods ended June&nbsp;30, 2019 and 2018 (in thousands):</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Liabilities</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended<br> June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 74%; font-size: 10pt">Deferred revenue - beginning of period</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">2,507</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">871</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Acquired in Dielectrics business combination</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,175</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Increases due to consideration received from customers</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,541</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,855</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Revenue recognized</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,097</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,570</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.25pt">Deferred revenue - end of period</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">2,951</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">3,331</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><font style="font-size: 10pt; color: windowtext"></font></p>

<p style="margin: 0; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">Revenue recognized during the six-month periods ended June
30, 2019 and 2018 from amounts included in deferred revenue at the beginning of the period were approximately $613 thousand and
$437 thousand, respectively.</p>

<p style="margin: 0; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 8; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->8<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">When invoicing occurs after revenue recognition, the Company
has unbilled receivables (contract assets) included within &#8220;receivables&#8221; on the condensed consolidated balance sheet.</p>

<p style="margin: 0; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">The following table presents opening and closing balances of contract assets
for the six-month periods ended June&nbsp;30, 2019 and 2018 (in thousands):</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Assets</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended<br> June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 74%; font-size: 10pt">Unbilled Receivables - beginning of period</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">65</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">-</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Decreases due to customer invoicing</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(314</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Increases due to revenue recognized - not invoiced to customers</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">280</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">236</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 2.25pt">Unbilled Receivables - end of period</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">31</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">236</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt; text-indent: 27.35pt"><font style="font-size: 10pt; color: windowtext"></font></p>

<p style="margin: 0; font-size: 10pt"><i>&nbsp;</i></p></div><p style="margin: 0; font-size: 10pt"><i></i></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(3)</b></td><td><font style="font-size: 10pt"><b>Supplemental Cash Flow Information</b></font></td></tr></table>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; text-align: center">(in thousands)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Cash paid for:</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 20pt">Interest</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">268</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">668</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Income taxes, net of refunds</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">382</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">784</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Non-cash investing and financing activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Capital additions accrued but not yet paid</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">281</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">331</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Recognition of lease asset and liability (ASC 842)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">3,831</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0; font-size: 10pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(4)</b></td><td><font style="font-size: 10pt"><b>Fair Value of Financial Instruments</b></font></td></tr></table>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">Financial instruments recorded at fair value in the consolidated balance sheets,
or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to
measure their fair value. Hierarchical levels defined by ASC 820, <i>Fair Value Measurements and Disclosures</i>, and directly
related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt"><i>Level 1</i></p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt">Valued based on unadjusted, quoted prices in active markets for identical assets
or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset
or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.</p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt"><i>Level 2</i></p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt">Valued based on either directly or indirectly observable prices for the asset
or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated
life.</p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt"><i>Level 3</i></p>

<p style="margin: 0 0 0 45.35pt; font-size: 10pt">Valued based on management&#8217;s best estimate of what market participants
would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation
technique and the risk inherent in the inputs to the model.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The following table presents the fair value and hierarchy levels, for financial
assets that are measured at fair value on a recurring basis (in thousands):</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 9; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->9<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left"><u>Level 2</u></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br> 2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,<br> 2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">(Liabilities) Assets:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 10pt">Derivative financial instruments</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">(373</td><td style="width: 1%; font-size: 10pt; text-align: left">)</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">64</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">Derivative financial instruments consist of an interest rate swap for which fair
value is determined through the use of a pricing model that utilizes verifiable inputs such as market interest rates that are observable
at commonly quoted intervals for the full term of the swap agreement.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="color: windowtext">The Company has financial instruments, such as accounts
receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of
the short maturity of those instruments. The carrying amount of the Company&#8217;s long-term debt approximates fair value as the
interest rate on the debt approximates the estimated borrowing rate currently available to the Company</font>.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(5)</b></td><td><font style="font-size: 10pt"><b>Share-Based Compensation</b></font></td></tr></table>

<p style="margin: 0 0 0 27pt; font-size: 10pt">Share-based compensation is measured at the grant date based on the fair value of
the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The Company issues share-based awards through several plans that are described in
detail in the notes to the consolidated financial statements for the year ended December 31, 2018. The compensation cost charged
against income for those plans is included in selling, general &amp; administrative expenses as follows (in thousands):</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Share-based compensation related to:</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Common stock grants</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">100</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">205</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">200</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">305</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Stock option grants</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">24</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">118</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">32</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">134</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit Awards ("RSUs")</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">277</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">130</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">464</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">252</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total share-based compensation</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">401</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">453</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">696</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">691</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">The total income tax benefit recognized in the condensed consolidated statements
of income for share-based compensation arrangements was approximately $188 thousand and $155 thousand for the three-month periods
ended <font style="color: windowtext">June 30, 2019 and 2018</font>, respectively, and approximately $348 thousand and $356 thousand
for the six-month periods ended <font style="color: windowtext">June&nbsp;30, 2019 and 2018</font>, respectively.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 27.9pt 0 27pt; font-size: 10pt">The following is a summary of stock option activity under all plans for the
six-month period ended June&nbsp;30<font style="color: windowtext">, 2019</font>:</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares Under<br>
 Options</td><td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><b>Weighted
    <br>
    Average <br>
    Exercise Price <br>
    </b><font style="font-size: 10pt; font-style: normal">(per share)</font></td><td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"><b>&nbsp;</b></td>
    <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><b>Weighted
    <br>
    Average <br>
    Remaining<br>
 Contractual <br>
    Life <br>
    </b><font style="font-size: 10pt; font-style: normal">(in years)</font></td><td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"><b>&nbsp;</b></td>
    <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><b>Aggregate
    <br>
    Intrinsic <br>
    Value <font style="font-size: 10pt; font-style: normal"><br>
    </font></b><font style="font-size: 10pt">(in thousands)</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt">Outstanding at December 31, 2018</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">134,043</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">20.46</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">&nbsp;</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt; text-decoration: line-through"></td>
    <td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"></td><td style="width: 10%; font-size: 10pt; text-decoration: line-through; text-align: right"></td><td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Granted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">16,536</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">38.61</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt"></td>
    <td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left"></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Exercised</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(31,058</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14.18</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 2.25pt">Outstanding at June 30, 2019</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">119,521</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">24.61</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">5.68</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">2,032</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.25pt">Exercisable at June 30, 2019</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">95,485</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">21.86</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">5.12</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">1,886</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Vested and expected to vest at June 30, 2019</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">119,521</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">24.61</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">5.68</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">2,032</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt; text-align: center"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 10; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->10<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27pt; font-size: 10pt">On June 5, 2019, the Company granted options to its directors for the purchase of
210,000 shares of common stock at that day&#8217;s closing price of $38.61. The compensation expense related to these grants was
determined as the fair value of the options using the Black-Scholes option pricing model based on the following assumptions:</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table border="0" cellpadding="0" cellspacing="0" style="width: 70%; border-collapse: collapse; font-size: 10pt; margin-left: 27pt">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%">Expected volatility</td>
    <td style="text-align: left; width: 30%">28.9%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td>Expected dividends</td>
    <td style="text-align: left">None</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Risk-free interest rate</td>
    <td style="text-align: left">2.3%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td>Exercise price</td>
    <td style="text-align: left">$38.61</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Expected term</td>
    <td style="text-align: left">6.0 years</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td>Weighted-average grant date fair value</td>
    <td style="text-align: left">$12.70</td></tr>
</table></div>


<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt; color: windowtext"></font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The stock volatility for each grant is determined based on a review of the experience
of the weighted average of historical daily price changes of the Company&#8217;s common stock over the expected option term, and
the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding
with the expected term of the option. The expected term is estimated based on historical option exercise activity.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">During the six-month periods ended June 30, 2019 and 2018, the total intrinsic value
of all options exercised (i.e., the difference between the market price on the exercise date and the price paid by the employees
to exercise the options) was approximately $628 thousand and $1.0 million, respectively, and the total amount of consideration
received by the Company from the exercised options was approximately $440 thousand and $965 thousand, respectively. At its discretion,
the Company allows option holders to surrender previously-owned common stock in lieu of paying the exercise price and withholding
taxes. During the six-month periods ended June 30, 2019 and 2018, no shares were surrendered for this purpose.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="color: windowtext">On February 19, 2019, the Company&#8217;s Compensation
Committee approved </font><font style="color: black">the award of $400 thousand, payable in shares of common stock to the Company&#8217;s
Chairman, Chief Executive Officer, and President under the 2003 </font><font style="color: windowtext">Incentive Plan, subject
to his continued employment and the terms of his employment agreement. The shares will be issued in December 2019. </font></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The following table summarizes information about RSU activity during the six-month
period ended June 30, 2019:</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td colspan="2" style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted <br>
Stock Units</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Weighted Average<br>
Award Date<br>
Fair Value</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 73%; font-size: 10pt; text-align: left">Outstanding at December 31, 2018</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">72,176</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">23.60</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Awarded</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">67,152</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">33.50</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Shares vested</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(19,860</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">23.53</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Outstanding at June 30, 2019</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">119,468</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">27.64</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">At the Company&#8217;s discretion, RSU holders are given the option to net-share
settle to cover the required minimum withholding tax and the remaining amount is converted into the equivalent number of common
shares. During the six-month periods ended June 30, 2019 and 2018, 8,132 and 5,238 shares were surrendered at an average market
price of $33.35 and $27.60, respectively.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="color: windowtext">As of June 30, 2019, the Company had approximately
$3.2 million of unrecognized compensation expense that is expected to be recognized over a period of 3.8 years</font>.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b>(6)</b></td><td><font style="font-size: 10pt"><b>Inventories</b></font></td></tr></table>

<p style="margin: 0 0 0 27pt; font-size: 10pt">Inventories are stated at the lower of cost (determined using the first-in, first-out
method) or net realizable value, and consist of the following at the stated dates (in thousands):</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 11; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->11<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br>
2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31, <br>
2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 74%; font-size: 10pt; text-align: left">Raw materials</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">10,168</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">11,727</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Work in process</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,837</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,521</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Finished goods</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">6,033</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">5,328</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Total inventory</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">19,038</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">19,576</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(7)</b></td><td><font style="font-size: 10pt"><b>Leases</b></font></td></tr></table>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The Company adopted ASC 842 - <i>Leases</i> (&#8220;ASC 842&#8221;) as of January
1, 2019, using the transition method wherein entities could initially apply the new leases standard at adoption date and recognize
a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption. Accordingly, all periods
prior to January 1, 2019 were presented in accordance with the previous ASC Topic 840, Leases, and no retrospective adjustments
were made to the comparative periods presented.&nbsp;The adoption of ASC 842 resulted in an increase to total assets due to the
recording of operating lease right-of-use ("ROU") assets and operating lease liabilities of approximately $4.0&nbsp;million
and $4.1 million, respectively, as of January 1, 2019.&nbsp; The Company did not have any finance leases at the adoption date.
The adoption did not materially impact the Company&#8217;s condensed consolidated statements of income or cash flows.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The Company has operating leases for offices, manufacturing plants, vehicles and
certain office and manufacturing equipment. Leases with an initial term of 12 months or less are not recorded on the balance sheet.
The Company has elected the practical expedient to account for each separate lease component of a contract and its associated non-lease
components as a single lease component, thus causing all fixed payments to be capitalized. The Company also elected the package
of practical expedients permitted within the new standard, which among other things, allows the Company to carry forward historical
lease classification. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases
in lease payments based on changes in index rates or usage, are not included in the ROU assets or operating lease liabilities.&nbsp;These
are expensed as incurred and recorded as variable lease expense.&nbsp;The Company determines if an arrangement is a lease at the
inception of a contract. Operating lease ROU assets and operating lease liabilities are stated separately in the condensed consolidated
balance sheet.&nbsp;</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">ROU assets represent the Company's right to use an underlying asset during the lease
term and operating lease liabilities represent the Company's obligation to make lease payments arising from the lease.&nbsp;ROU
assets and operating lease liabilities are&nbsp;recognized at commencement date based on the net present value of fixed lease payments
over the lease term.&nbsp;The Company's lease term&nbsp;includes&nbsp;options to extend or terminate the lease when it is reasonably
certain that we will exercise that option.&nbsp;ROU assets will also be adjusted for any deferred or accrued rent. As the Company's&nbsp;operating
leases do not typically provide an implicit rate,&nbsp;the Company uses&nbsp;its incremental borrowing rate based on the information
available at commencement date in determining the present value of lease payments.&nbsp;Operating fixed lease expense is recognized
on a straight-line basis over the lease term.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<!-- Field: Page; Sequence: 12; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->12<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">June 30, 2019</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">($ in thousands)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Lease Cost:</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 87%; font-size: 10pt; padding-left: 10pt">Operating</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">613</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-left: 10pt">Variable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">111</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt">Short-term</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">13</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total lease cost</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">737</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Cash paid for amounts included in measurement of&nbsp;&nbsp;lease liabilities:</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">604</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Weighted-average remaining lease term (years):</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">3.15</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Weighted-average discount rate:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">4.45</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td colspan="5" style="font-size: 10pt">The aggregate future lease payments for operating leases as of June 30, 2019 were as follows (in thousands):</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Remainder of:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 87%; font-size: 10pt; text-align: left">2019</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">593</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2020</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,143</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2021</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,121</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2022</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">957</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2023</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">35</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Thereafter</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total lease payments</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,849</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Less: Interest</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(267</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Present value of lease liabilities</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">3,582</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td colspan="5" style="font-size: 10pt">The aggregate future lease payments for operating leases as of December 31, 2018 were as follows (in thousands):</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 87%; font-size: 10pt; text-align: left">2019</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">1,051</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2020</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,070</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2021</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,063</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2022</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">975</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2023</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">36</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Total&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">4,195</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt; text-align: justify"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b>(8)</b></td><td><font style="font-size: 10pt"><b>Income Per Share</b></font></td></tr></table>

<p style="margin: 0 0 0 27pt; font-size: 10pt">Basic income per share is based on the weighted average number of shares of common
stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive
common stock equivalent shares outstanding during each period.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The weighted average number of shares used to compute basic and diluted net income
per share consisted of the following (in thousands):</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 13; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->13<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt">Basic weighted average common shares outstanding</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">7,423</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">7,347</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">7,413</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">7,336</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt; text-indent: -10pt">Weighted average common equivalent shares due to stock, stock options and RSUs</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">44</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">66</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">60</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">72</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.25pt">Diluted weighted average common shares outstanding</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">7,467</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">7,413</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">7,473</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">7,408</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27.35pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The computation of diluted earnings per share excludes the effect of the potential
exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise
price of the related options during the period. These outstanding stock awards are not included in the computation of diluted income
per share because the effect would be antidilutive. For both the three- and six-month periods ended <font style="color: windowtext">June
30, 2019</font>, the number of stock awards excluded from the computation of diluted earnings per share for this reason was 16,536.
For the three- and six-month periods ended <font style="color: windowtext">June&nbsp;30, 2018</font>, the number of stock awards
excluded from the computation of diluted earnings per share for this reason was 24,280 and 25,344, respectively.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b>(9)</b></td><td><font style="font-size: 10pt"><b>Segment Reporting</b></font></td></tr></table>

<p style="font-size: 10pt; margin: 0 0 0 27pt; text-indent: 0in">The Company consists of a single operating and reportable segment.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">Revenues from customers outside of the United States are not material. No customer
comprised more than 10% of the Company&#8217;s consolidated revenues for the three- and six-month periods ended June 30, 2019 and
2018. All of the Company&#8217;s assets are located in the United States.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="color: windowtext">The Company&#8217;s products are primarily sold
to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Net sales by
market for the three- and six-month periods ended June 30, 2019 and 2018 are as follows (in thousands)</font>:</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended June 30,</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Market</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 20%; font-size: 10pt">Medical</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">33,045</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">64.3</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">29,227</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">59.6</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">61,989</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">62.8</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 7%; font-size: 10pt; text-align: right">53,365</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 7%; font-size: 10pt; text-align: right">58.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">Automotive</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,950</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">9.6</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,065</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10.3</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10,688</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10.8</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10,421</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11.3</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">Consumer</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,667</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">9.1</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,777</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11.8</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">9,092</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">9.2</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11,237</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12.2</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Aerospace &amp; Defense</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,115</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8.0</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,080</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">6.3</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,646</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7.7</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,567</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">6.1</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">Industrial</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,326</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4.5</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,902</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5.9</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,811</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4.9</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,519</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">6.0</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt">Electronics</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,296</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4.5</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,968</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">6.1</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4,500</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4.6</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">5,840</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">6.4</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Net Sales</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">51,399</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">100.0</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">49,019</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">100.0</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">98,726</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">100.0</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">91,949</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">100.0</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td></tr>
</table></div>




<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 95.4pt 0 0.5in; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 95.4pt 0 0.5in; font-size: 10pt">Certain amounts for the three and six months ended June 30, 2018 were reclassified
between markets to conform to the current period presentation.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt; text-align: center; text-indent: -27pt"></p>

<p style="font-size: 10pt; margin: 0; text-indent: 0in"></p>



<p style="font-size: 10pt; margin: 0; text-indent: 0in"></p>

<p style="font-size: 10pt; margin: 0; text-indent: 0in"></p><p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b>(10)</b></td><td><font style="font-size: 10pt"><b>Other Intangible
Assets</b></font></td></tr></table>
<p></p>

<p style="font-size: 10pt; margin: 0; text-indent: 0in"><b></b></p>

<p style="font-size: 10pt; margin: 0; text-indent: 0in"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">The carrying values of the Company&#8217;s definite lived intangible assets as
of June 30, 2019 are as follows (in&nbsp;thousands):</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0 0 0 27.35pt"></p>

<!-- Field: Page; Sequence: 14; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->14<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="font-size: 10pt; margin: 0 0 0 27.35pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename <br>
&amp; Brand</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br> Compete</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br>
List</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">Estimated useful life</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">367</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">462</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">22,555</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">23,384</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(52</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(131</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,598</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,781</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Net balance</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">315</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">331</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">20,957</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">21,603</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">Amortization expense related to intangible assets was approximately $314 thousand
for both the three-month periods ended June 30, 2019 and 2018, and $628 thousand and $524 thousand for the six-month periods ended
June 30, 2019 and 2018, respectively. The estimated remaining amortization expense as of June 30, 2019 is as follows (in thousands):</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 0.75in; font-size: 10pt; text-indent: -0.35pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 70%; margin-left: 40pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">Remainder of:</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 77%; font-size: 10pt; text-align: left">2019</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 20%; font-size: 10pt; text-align: right">628</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2020</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,257</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2021</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,257</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2022</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,257</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2023</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,172</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Thereafter</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">16,032</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Total</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">21,603</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 0.75in; font-size: 10pt; text-indent: -0.35pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0 0 0 0.75in; font-size: 10pt; text-indent: -0.35pt">&nbsp;</p></div><p style="margin: 0 0 0 0.75in; font-size: 10pt; text-indent: -0.35pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b>(11)</b></td><td><font style="font-size: 10pt"><b>Income Taxes</b></font></td></tr></table>


<p style="font-size: 10pt; margin: 0; text-indent: 0in"><b></b></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">The income tax expense included in the accompanying unaudited condensed consolidated
statements of income principally relates to the Company&#8217;s proportionate share of the pre-tax income of its wholly-owned subsidiaries.
The determination of income tax expense for interim reporting purposes is based upon the estimated effective tax rate for the year,
adjusted for the impact of any discrete items which are accounted for in the period in which they occur. <font style="color: windowtext">The
Company recorded tax expense of approximately 25.6% and 24.4% of income before income tax expense for the three-month periods ended
June 30, 2019 and 2018, respectively. The Company recorded tax expense of approximately 24.0% and 24.5% of income before income
tax expense, for each of the six-month periods ended June 30, 2019 and 2018, respectively. </font></p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b>(12)</b></td><td><font style="font-size: 10pt"><b> Indebtedness</b></font></td></tr></table>


<p style="font-size: 10pt; margin: 0; text-indent: 0in"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">On February 1, 2018, the Company, as the borrower, entered into an unsecured $70
million Amended and Restated Credit Agreement (the &#8220;Amended and Restated Credit Agreement&#8221;) with certain of the Company&#8217;s
subsidiaries (the &#8220;Subsidiary Guarantors&#8221;) and Bank of America, N.A., in its capacity as the initial lender, Administrative
Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit
Agreement amends and restates the Company&#8217;s prior credit agreement.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The credit facilities under the Amended and Restated Credit Agreement (the &#8220;Amended
and Restated Credit Facilities&#8221;) consist of a $20 million unsecured term loan and an unsecured revolving credit facility,
under which the Company may borrow up to $50 million.&nbsp; The Amended and Restated Credit Agreement matures on February 1, 2023.&nbsp;
The proceeds borrowed pursuant to the Amended and Restated Credit Agreement may be used for general corporate purposes, as well
as permitted acquisitions. The Company&#8217;s obligations under the Amended and Restated Credit Agreement are guaranteed by the
Subsidiary Guarantors.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The Amended and Restated Credit Agreement calls for interest of LIBOR plus a margin
that ranges from 1.0% to 1.5% or, at the discretion of the Company, the bank&#8217;s prime rate less a margin that ranges from
0.25% to zero. In both cases the applicable margin is dependent upon Company performance.&nbsp; Under the Amended and Restated
Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded
debt to EBITDA financial covenant.&nbsp; The Amended and Restated Credit Agreement contains other covenants customary for transactions
of this type, including restrictions on certain payments, permitted indebtedness and permitted investments.&nbsp;As of June 30,
2019, there were <font style="color: windowtext">$0.7 </font>million in standby letters of credit outstanding drawable as a financial
guarantee on worker&#8217;s compensation insurance policies. As of June 30, 2019, the applicable interest rate was approximately
3.4%, and the Company was in compliance with all covenants under the Amended and Restated Credit Agreement.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 15; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->15<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27.35pt; font-size: 10pt">Long-term debt consists of the following (in thousands):</p>

<p style="font-size: 10pt; margin: 0 0 0 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0 0 0 27.35pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30, <br> 2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,<br> 2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 74%; font-size: 10pt; text-align: left">Revolving credit facility</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">1,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">8,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">16,428</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">17,143</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">17,428</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">25,143</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Current portion</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(3,571</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,857</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Long-term debt, excluding current portion</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">13,857</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">22,286</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="font-size: 10pt; margin: 0 0 0 27.35pt"></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><i>Derivative Financial Instruments</i></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"><font style="color: windowtext">The Company uses interest-rate-related derivative
instruments to manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does
not enter into derivative instruments for any purpose other than cash flow hedging. The Company does not speculate using derivative
instruments. By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself
to credit risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract.
When the fair value of a derivative contract is positive, the counterparty owes the Company, which creates credit risk for the
Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company
is not exposed to the counterparty&#8217;s credit risk. The Company minimizes counterparty credit risk in derivative instruments
by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk
is the adverse effect on the value of a derivative instrument that results from a change in interest rates. The market risk associated
with interest-rate contracts is managed by establishing and monitoring parameters that limit the types and degree of market risk
that may be undertaken. The Company assesses interest rate risk by continually identifying and monitoring changes in interest rate
exposures that may adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&#8217;s debt
obligations expose the Company to variability in interest payments due to changes in interest rates. The Company believes that
it is prudent to limit the variability of a portion of its interest payments. To meet this objective, </font>in connection with
the Amended and Restated Credit Agreement, the Company entered into a $20&nbsp;million, 5-year interest rate swap agreement under
which the Company receives three-month LIBOR plus the applicable margin and pays a 2.7% fixed rate plus the applicable margin.
The swap modifies the Company&#8217;s interest rate exposure by converting the term loan from a variable rate to a fixed rate to
hedge against the possibility of rising interest rates during the term of the loan. The notional amount was approximately $15.7
million at June 30, 2019. The fair value of the swap as of June 30, 2019 and December 31, 2018 was approximately $(373) thousand
and $64 thousand, respectively, and are included in other liabilities and other assets on the condensed consolidated balance sheets,
respectively. Changes in the fair value of the swap are recorded in other expense (income) on the condensed consolidated statements
of income and were approximately $198 thousand and $437 thousand during the three- and six-months ended June 30, 2019, and $(3)
thousand and $(53) thousand, respectively during the same periods in 2018.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt"><tr style="vertical-align: top"><td style="width: 27pt"><b>(13)</b></td><td><font style="font-size: 10pt"><b>Acquisition</b></font></td></tr></table>


<p style="font-size: 10pt; margin: 0; text-indent: 0in"></p>

<p style="margin: 0; font-size: 10pt; text-indent: 27pt"></p>

<p style="font-size: 10pt; margin: 0 0 0 27pt">On February 1, 2018 the Company purchased 100% of the outstanding shares of common
stock of Dielectrics Inc., pursuant to a stock purchase agreement and related agreements, for an aggregate purchase price of $80&nbsp;million
in cash. The purchase price was subject to adjustment based upon Dielectrics&#8217; working capital at closing. An additional $250
thousand of consideration was paid by the Company as a result of the final working capital adjustment. A portion of the purchase
price is being held in escrow to indemnify the Company against certain claims, losses and liabilities. The Purchase Agreement contains
customary representations, warranties and covenants customary for transactions of this type.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 16; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->16<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0 0 0 27pt; font-size: 10pt">Founded in 1954 and based in Chicopee, Massachusetts, Dielectrics is a leader in
the design, development, and manufacture of medical devices using thermoplastic materials. They primarily use radio frequency and
impulse welding to design and manufacture solutions for the medical industry. In addition to the long-standing customer relationships,
they bring to the Company a seasoned management team and a profitable book of business. The Company has leased the Chicopee location
from a realty trust owned by the selling shareholder and affiliates. The lease is for five years with two five-year renewal options.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The following table summarizes the allocation of consideration paid to the acquisition
date fair value of the assets acquired and liabilities assumed based on management&#8217;s estimates of fair value (in thousands):</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 63pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 47pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">Consideration Paid:</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 87%; font-size: 10pt; text-align: left; padding-left: 10pt">Cash paid at closing</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">80,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Working capital adjustment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">250</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Cash from Dielectrics</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(3,272</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Total consideration</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">76,978</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">Purchase Price Allocation:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts receivable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">4,384</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 10pt">Inventory</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,418</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Other current assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">122</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Property, plant and equipment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,600</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Customer list</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">22,555</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 10pt">Non-compete</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">462</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Trade name and brand</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">367</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt">Goodwill</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">44,516</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total identifiable assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">81,424</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts payable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,325</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accrued expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(946</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Deferred revenue</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,175</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Net Assets acquired</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">76,978</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0 0 0 63pt; font-size: 10pt"><font style="font-size: 10pt; color: windowtext"></font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">Acquisition costs associated with the transaction were approximately $1.1 million
and were charged to expense in the six-month period ended June 30, 2018. These costs were primarily for investment banking and
legal fees and are reflected on the face of the income statement.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The following table contains an unaudited pro forma condensed consolidated statement
of operations for the three and six-month periods ended June 30, 2018, as if the Dielectrics acquisition had occurred at the beginning
of the respective periods (in thousands):</p>

<p style="margin: 0 0 0 0.5in; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-indent: 1in"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended<br> June 30,</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended<br> June 30,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: center">(Unaudited)</td><td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; text-align: center">&nbsp;</td>
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; text-align: center">(Unaudited)</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 74%; font-size: 10pt">Sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">49,019</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">95,004</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Operating Income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">5,669</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">8,084</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Net Income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">3,990</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">5,566</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">Earnings per share:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 10pt">Basic</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.54</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.76</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-left: 10pt">Diluted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.54</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">0.75</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0; font-size: 10pt; text-indent: 1in"><font style="font-size: 10pt; color: windowtext"></font></p>

<p style="margin: 0 0 0 0.5in; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">The above unaudited pro forma information is presented for illustrative purposes
only and may not be indicative of the results of operations that would have actually occurred had the Dielectrics acquisition occurred
as presented. In addition, future results may vary significantly from the results reflected in such pro forma information.</p>

<p style="margin: 0 0 0 0.5in; font-size: 10pt">&nbsp;</p></div><p style="margin: 0 0 0 0.5in; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt"><b>&nbsp;</b></p>

<!-- Field: Page; Sequence: 17; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->17<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt"><b></b></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 0.75in"><b><a name="a_008"></a>ITEM 2:</b></td><td><b>MANAGEMENT'S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND&nbsp;RESULTS&nbsp;OF&nbsp;OPERATIONS</b></td></tr></table>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0 0.25in 0 0"><b>Forward-looking Statements</b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Some of the statements contained in this Report are forward-looking statements within the
meaning of Section 27A of the Securities Act of 1933, as amended (&#8220;Securities Act&#8221;), and Section 21E of the Securities
Exchange Act of 1934, as amended (&#8220;Exchange Act&#8221;). These statements are subject to known and unknown risks, uncertainties,
and other factors, which may cause our or our industry&#8217;s actual results, performance, or achievements to be materially different
from any future results, performance or achievements expressed or implied by the forward-looking statements. Forward-looking statements
include, but are not limited to, statements about the Company&#8217;s prospects, anticipated trends in the different markets in
which the Company competes, including the medical, automotive, consumer, aerospace and defense, industrial and electronics markets,
statements regarding anticipated new customer and vendor contracts, anticipated advantages and the timing associated with requalification
of parts, anticipated advantages of maintaining fewer, larger plants, anticipated advantages the Company expects to realize from
its investments and capital expenditures, expectations regarding the manufacturing capacity and efficiencies of the Company&#8217;s
new production equipment, statements about new product offerings and program launches and the expected timing thereof, statements
about the Company&#8217;s acquisition opportunities and strategies, statements about the Company&#8217;s acquisition of Dielectrics
and the integration of the Dielectrics business, the Company&#8217;s participation and growth in multiple markets, its business
opportunities, the Company&#8217;s growth potential and strategies for growth, anticipated revenues and the timing of such revenues,
and any indication that the Company may be able to sustain or increase its sales or earnings or sales and earnings growth rates.
Investors are cautioned that such forward-looking statements involve risks and uncertainties, including without limitation risks
and uncertainties associated with the Company&#8217;s acquisition and integration of Dielectrics, risks associated with plant closures
and consolidations, and expected efficiencies from consolidating manufacturing, risks and uncertainties associated with the requalification
of parts, the risk that the Company may not be able to finalize anticipated new and existing customer and vendor contracts, risks
associated with new product and program launches, including lengthy manufacturing qualification processes, the ability launch on
a timely basis, significant start-up and other expenses prior to launch, such as tooling and related manufacturing processes, and
manufacturing inefficiencies that may affect the ability to generate profits, risks associated with the implementation of new production
equipment and requalification or recertification of transferred equipment in a timely, cost-efficient manner, risks that any benefits
from such new equipment may be delayed or not fully realized, or that the Company may be unable to fully utilize its expected production
capacity, risks that the Company will sustain its manufacturing efficiencies and existing customer margins, risks and uncertainties
associated with the identification of suitable acquisition candidates and the successful, efficient execution of acquisition transactions
and integration of any such acquisition candidates, and risks related to our indebtedness and compliance with covenants contained
in our financing arrangements. Accordingly, actual results may differ materially.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">In some cases, you can identify forward-looking statements by terms such as &#8220;may,&#8221;
&#8220;will,&#8221; &#8220;should,&#8221; &#8220;could,&#8221; &#8220;would,&#8221; &#8220;expects,&#8221; &#8220;plans,&#8221;
&#8220;anticipates,&#8221; &#8220;believes,&#8221; &#8220;estimates,&#8221; &#8220;projects,&#8221; &#8220;predicts,&#8221; &#8220;potential,&#8221;
and similar expressions intended to identify forward-looking statements. Our actual results could be different from the results
described in or anticipated by our forward-looking statements due to the inherent uncertainty of estimates, forecasts, and projections,
and may be materially better or worse than anticipated. Given these uncertainties, you should not place undue reliance on these
forward-looking statements. Forward-looking statements represent our estimates and assumptions only as of the date of this Report.
We expressly disclaim any duty to provide updates to forward-looking statements, and the estimates and assumptions associated with
them, after the date of this Report, in order to reflect changes in circumstances or expectations, or the occurrence of unanticipated
events, except to the extent required by applicable securities laws. All the forward-looking statements are qualified in their
entirety by reference to the factors discussed above and under &#8220;Risk Factors&#8221; set forth in Part I Item 1A of the Company&#8217;s
Annual Report on Form 10-K for the year ended December 31, 2018, as well as the risks and uncertainties discussed elsewhere in
this Report. We qualify all of our forward-looking statements by these cautionary statements. We caution you that these risks are
not exhaustive. We operate in a continually changing business environment and new risks emerge from time to time.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Unless the context requires otherwise, the terms &#8220;we&#8221;, &#8220;us&#8221;, &#8220;our&#8221;,
or &#8220;the Company&#8221; refer to UFP Technologies, Inc. and its consolidated subsidiaries.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0.25in 0 0; font-size: 10pt"><b>Overview</b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 18; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->18<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt">UFP Technologies is an innovative designer and custom manufacturer of components, subassemblies,
products and packaging primarily for the medical market. Utilizing highly specialized foams, films and plastics, the Company converts
raw materials through laminating, molding, radio frequency welding and fabricating techniques. The Company is diversified by also
providing highly engineered solutions to customers in the aerospace &amp; defense, automotive, consumer, electronics and industrial
markets. The Company consists of a single operating and reportable segment.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Sales for the Company for the six-month period ended June 30, 2019 grew 7.4% to $98.7 million
from $91.9 million in the same period last year largely due to one additional month of sales at Dielectrics as well as strong growth
in sales to the customers in the medical market. Streamlined manufacturing operations and a better mix of business enabled the
Company to improve gross margins to 27.2% for the six-month period ended June 30, 2019, from 25.2% in the same period last year.
Operating income and net income grew 44% and 45%, respectively.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The Company&#8217;s current strategy includes further organic growth and growth through strategic
acquisitions.</p>

<p style="margin: 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt"><b>Results of Operations</b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><i>Sales</i></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Sales for the three-month period ended June 30, 2019 increased approximately 4.9% to $51.4
million from sales of $49.0 million for the same period in 2018. The increase in sales was primarily due to increased sales to
customers in the medical and aerospace &amp; defense markets of 13.1% and 33.6%, respectively. These increases were partially offset
by a collective decline in sales to the consumer, electronics and industrial markets of 20.2%. The increase in sales to customers
in the medical market was primarily due to strong sales at Dielectrics as well as increased demand from legacy UFP medical customers.
The increase in sales to customers in the aerospace &amp; defense markets was primarily due to increased government spending. The
collective decline in sales to customers in the consumer, electronics and industrial markets was primarily due to decreased demand
for molded fiber packaging.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Sales for the six-month period ended June 30, 2019 increased approximately 7.4% to $98.7
million from sales of $91.9 million for the same period in 2018. The increase in sales was primarily due to increased sales to
customers in the medical and aerospace &amp; defense markets of 16.2% and 37.4%, respectively. These increases were partially offset
by a collective decline in sales to the consumer, electronics and industrial markets of 18.6%. The increase in sales to customers
in the medical market was primarily due to strong sales at Dielectrics (including on additional month of sales) as well as increased
demand from legacy UFP medical customers. The increase in sales to customers in the aerospace &amp; defense markets was primarily
due to increased government spending. The collective decline in sales to customers in the consumer, electronics and industrial
markets was primarily due to decreased demand for molded fiber packaging.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0.25in 0 0; font-size: 10pt"><i>Gross Profit</i></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Gross profit as a percentage of sales (&#8220;gross margin&#8221;) increased to 28.0% for
the three-month period ended June 30, 2019, from 26.5% for the same period in 2018. As a percentage of sales, material and labor
costs collectively decreased 0.2%, while overhead decreased 1.3%. The decrease in collective material and labor costs as a percentage
of sales is primarily due to gains in manufacturing efficiencies resulting from continuous improvement initiatives and an improvement
in the overall book of business. The decline in overhead as a percentage of sales was primarily due to leveraging fixed overhead
costs against increased sales.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Gross margin increased to 27.2% for the six-month period ended June 30, 2019, from 25.2%
for the same period in 2018. As a percentage of sales, material and labor costs collectively decreased 0.2%, while overhead decreased
1.8%. The decrease in collective material and labor costs as a percentage of sales is primarily due to gains in manufacturing efficiencies
resulting from continuous improvement initiatives and an improvement in the overall book of business. The decline in overhead as
a percentage of sales was primarily due to leveraging fixed overhead costs against increased sales.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0.25in 0 0; font-size: 10pt"><i>Selling, General and Administrative Expenses</i></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><font style="color: windowtext">Selling, general, and administrative expenses (&#8220;SG&amp;A&#8221;)
increased approximately 5.2% to $7.8 million for the three-month period ended June 30, 2019, from $7.4 million for the same period
in 2018. As a percentage of sales, SG&amp;A increased slightly to 15.2% for the three-month period ended June 30, 2019, from 15.1%
for the same three-month period in 2018. The increase in SG&amp;A for the three-month period ended June 30, 2019 is primarily due
to compensation increases as well as new strategic management hires at the Company&#8217;s plants</font><font style="color: gray">.
</font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><font style="color: black"></font></p>

<!-- Field: Page; Sequence: 19; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->19<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt"><font style="color: black">SG&amp;A was approximately $15.0 million for the six-month period
ended June 30, 2019, compared to of $14.0 million in the same period in 2018. As a percentage of sales, SG&amp;A remained constant
at 15.2% for the six-month period ended June 30, 2019 and the same six-month period in 2018. </font><font style="color: windowtext">The
increase in SG&amp;A for the six-month period ended June 30, 2019 is primarily due to compensation increases as well as new strategic
management hires at the Company&#8217;s plants.</font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0.25in 0 0; font-size: 10pt"><i>Interest Income and Expense</i></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The Company had net interest expense of approximately $194 thousand for the three-month period
ended June 30, 2019, compared to net interest expense of $397 thousand in the same period of 2018. The decrease in net interest
expense was primarily due to lower debt levels.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The Company had net interest expense of approximately $425 thousand for the six-month period
ended June 30, 2019, compared to net interest expense of $645 thousand in the same period of 2018. The decrease in net interest
expense was primarily due to lower debt levels.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0 0.25in 0 0; font-size: 10pt"><i>Income Taxes</i></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The Company recorded tax expense of approximately 25.6% and 24.4% of income before income
tax expense, respectively, for each of the three-month periods ended June 30, 2019 and 2018. The increase in the effective tax
rate for the current period is largely due to lower share-based payment related tax benefits recorded in the current period. The
Company recorded tax expense of approximately 24.0% and 24.5% of income before income tax expense, respectively, for each of the
six-month periods ended June 30, 2019 and 2018. The decrease in the effective tax rate for the current period is largely due to
higher share-based payment related tax benefits recorded in the current period. The Company notes the potential for volatility
in its effective tax rate, as any windfall or shortfall tax benefits related to its share-based compensation plans will be recorded
directly into income tax expense.</p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt"><b>Liquidity and Capital Resources</b></p>

<p style="margin: 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt">The Company generally funds its operating expenses, capital requirements, and growth plan
through internally generated cash and bank credit facilities.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><i>Cash Flows</i></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Net cash provided by operations for the six-month period ended June 30, 2019 was approximately
$12.4 million and was primarily a result of net income generated of approximately $8.3 million, depreciation and amortization of
approximately $4.1 million, share-based compensation of approximately $0.7 million, an increase in deferred taxes of approximately
$0.8 million, a decrease in inventory of approximately $0.5 million, a decrease in refundable income taxes of approximately $1.6
million and an increase in deferred revenue of approximately $0.5 million. These cash inflows and adjustments to income were partially
offset by an increase in accounts receivable of approximately $2.4 million primarily due to increased sales in the last two months
of the second quarter of 2019 over the same period of the fourth quarter of 2018, an increase in other assets of approximately
$0.2 million, a decrease in other liabilities of approximately $0.3 million and a decrease in accounts payable of approximately
$1.2 million due to the timing of vendor payments in the ordinary course of business.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><font style="font-size: 10pt; color: windowtext">Net cash used in investing activities during
the six-month period ended June 30, 2019 was approximately $2.8</font>&nbsp;<font style="font-size: 10pt; color: windowtext">million
and was primarily the result of additions of manufacturing machinery and equipment across the Company.</font></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Net cash used in financing activities was approximately $7.5 million during the six-month
period ended June 30, 2019, resulting from repayments on the Company&#8217;s credit facility of approximately $7.7 million and
payments of statutory withholding for stock options exercised and restricted stock units vested of approximately $0.3 million,
partially offset by net proceeds received upon stock options exercises of approximately $0.5 million.</p>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0"><i>Outstanding and Available Debt</i></p>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 20; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->20<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt">On February 1, 2018, the Company, as the borrower, entered into an unsecured $70 million
Amended and Restated Credit Agreement (the &#8220;Amended and Restated Credit Agreement&#8221;) with certain of the Company&#8217;s
subsidiaries (the &#8220;Subsidiary Guarantors&#8221;) and Bank of America, N.A., in its capacity as the initial lender, Administrative
Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit
Agreement amends and restates the Company&#8217;s prior credit agreement.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The credit facilities under the Amended and Restated Credit Agreement (the &#8220;Amended
and Restated Credit Facilities&#8221;) consist of a $20 million unsecured term loan to the Company and an unsecured revolving credit
facility, under which the Company may borrow up to $50 million.&nbsp; The Amended and Restated Credit Facilities mature on February&nbsp;1,
2023.&nbsp; The proceeds of the Amended and Restated Credit Agreement may be used for general corporate purposes, including funding
the acquisition of&nbsp;Dielectrics, as well as certain other permitted acquisitions. The Company&#8217;s obligations under the
Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">The Amended and Restated Credit Facilities call for interest of LIBOR plus a margin that
ranges from 1.0% to 1.5% or, at the discretion of the Company, the bank&#8217;s prime rate less a margin that ranges from 0.25%
to zero. In both cases the applicable margin is dependent upon Company performance. Under the Amended and Restated Credit Agreement,
the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial
covenant.&nbsp; The Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including
restrictions on certain payments, permitted indebtedness and permitted investments.&nbsp; As of June 30, 2019, there were <font style="color: windowtext">$0.7</font>
million in standby letters of credit outstanding drawable as a financial guarantee on worker&#8217;s compensation insurance policies.
As of June 30, 2019, the applicable interest rate was approximately 3.4% and the Company was in compliance with all covenants under
the Amended and Restated Credit Agreement.</p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">Long-term debt consists of the following (in thousands):</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin-left: 27pt">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30, <br> 2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31, <br> 2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 74%; font-size: 10pt; text-align: left">Revolving credit facility</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">1,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">8,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">16,428</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">17,143</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">17,428</td><td style="font-size: 10pt; text-align: left"></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">25,143</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Current portion</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(3,571</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,857</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Long-term debt, excluding current portion</td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">13,857</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"></td><td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td>
    <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">22,286</td><td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>




<p style="font-size: 10pt; margin: 0"></p>

<p style="margin: 0; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0; font-size: 10pt"><i>Derivative Financial Instruments</i></p>

<p style="margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><font style="color: windowtext">The Company uses interest-rate-related derivative instruments
to manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does not enter into
derivative instruments for any purpose other than cash flow hedging. The Company does not speculate using derivative instruments.
By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself to credit
risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When
the fair value of a derivative contract is positive, the counterparty owes the Company, which creates credit risk for the Company.
When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company is not
exposed to the counterparty&#8217;s credit risk in those circumstances. The Company minimizes counterparty credit risk in derivative
instruments by entering into transactions with carefully selected major financial institutions based upon their credit profile.
Market risk is the adverse effect on the value of a derivative instrument that results from a change in interest rates. The market
risk associated with interest-rate contracts is managed by establishing and monitoring parameters that limit the types and degree
of market risk that may be undertaken. The Company assesses interest rate risk by continually identifying and monitoring changes
in interest rate exposures that may adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&#8217;s
debt obligations expose the Company to variability in interest payments due to changes in interest rates. The Company believes
that it is prudent to limit the variability of a portion of its interest payments. To meet this objective, </font>in connection
with the Amended and Restated Credit Agreement, the Company entered into a $20 million, 5-year interest rate swap agreement under
which the Company receives three-month LIBOR plus the applicable margin and pays a 2.7% fixed rate plus the applicable margin.
The swap modifies the Company&#8217;s interest rate exposure by converting the term loan from a variable rate to a fixed rate to
hedge against the possibility of rising interest rates during the term of the loan. The notional amount was approximately $15.7
million at June 30, 2019. The fair value of the swap as of June 30, 2019 and December 31, 2018 was approximately $(373) thousand
and $64 thousand, respectively, and is included in other liabilities and other assets, respectively. Changes in the fair value
of the swap are recorded in other expense (income) and were approximately $198 thousand and $437 thousand during the three- and
six-months ended June 30, 2019, and $(3) thousand and $(53) thousand, respectively during the same periods in 2018.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><i></i></p>

<!-- Field: Page; Sequence: 21; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->21<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt"><i>Future Liquidity</i></p>

<p style="margin: 0; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0; font-size: 10pt">The Company requires cash to pay its operating expenses, purchase capital equipment, and
to service its contractual obligations. The Company&#8217;s principal sources of funds are its operations and its Amended and Restated
Credit Facilities. The Company generated cash of approximately $12.4 million from operations during the six-month period ended
June 30, 2019. The Company&nbsp;cannot guarantee that its operations will generate cash in future periods. The Company&#8217;s
longer-term liquidity is contingent upon future operating performance.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0">Throughout fiscal 2019, the Company plans to continue to add capacity to enhance operating
efficiencies in its manufacturing plants. The Company may consider additional acquisitions of companies, technologies, or products
that are complementary to its business. The Company believes that its existing resources, including its revolving credit facility,
together with cash expected to be generated from operations and funds expected to be available to it through any necessary equipment
financings and additional bank borrowings, will be sufficient to fund its cash flow requirements, including capital asset acquisitions,
through the next twelve months.</p>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0"><i>Stock Repurchase Program</i></p>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">On June 16, 2015, the Company announced that its Board of Directors authorized the
repurchase of up to $10.0&nbsp;million of the Company&#8217;s outstanding common stock. Under the program, the Company is
authorized to repurchase shares through Rule 10b5-1 plans, open market purchases, privately negotiated transactions, block
purchases or otherwise in accordance with applicable federal securities laws, including Rule 10b-18 of the Securities
Exchange Act of 1934. The stock repurchase program will end upon the earlier of the date on which the plan is terminated by
the Board or when all authorized repurchases are completed. The timing and amount of stock repurchases, if any, will be
determined based upon our evaluation of market conditions and other factors. The stock repurchase program may be suspended,
modified, or discontinued at any time, and the Company has no obligation to repurchase any amount of its common stock under
the program. Through June 30, 2019, the Company repurchased a total of 29,559 shares of its common stock under this program
at a cost of approximately $587 thousand (none of which were during the six-month period ended June 30, 2019). At June 30,
2019, approximately $9.4 million was available for future repurchases of the Company&#8217;s common stock under
this authorization.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0 0.25in 0 0"><b>Commitments and Contractual Obligations </b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0 0.25in 0 0">There have been no material changes outside the ordinary course of business to
our contractual obligations and commitments, as disclosed in our Annual Report on Form 10-K for the year ended December 31, 2018.</p>

<p style="font-size: 10pt; margin: 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0"><b>Off-Balance-Sheet Arrangements</b></p>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0">In addition to operating leases, the Company&#8217;s off-balance-sheet arrangements include
standby letters of credit which are included in the Company&#8217;s revolving credit facility. As of June 30, 2019, there was approximately
$0.7 million in standby letters of credit drawable as a financial guarantee on worker&#8217;s compensation insurance policies.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b><a name="a_009"></a>ITEM 4:</b></td><td><b>CONTROLS AND PROCEDURES</b></td></tr></table>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0">As of the end of the period covered by this report (the &#8220;Evaluation Date&#8221;), the
Company&#8217;s management, under the supervision and with the participation of the Company&#8217;s Chief Executive Officer and
Chief Financial Officer, performed an evaluation of the effectiveness of the design and operation of the Company&#8217;s &#8220;disclosure
controls and procedures&#8221; (as defined in SEC Rule 13a-15(e) or 15d-15(e)). Based upon that evaluation, the Chief Executive
Officer and Chief Financial Officer concluded that, as of the Evaluation Date, the Company&#8217;s disclosure controls and procedures
were effective to ensure that information required to be disclosed by the Company in the reports that it files or submits under
the Securities Exchange Act of 1934, as amended, is (i) recorded, processed, summarized, and reported within the time periods specified
in the Securities and Exchange Commission&#8217;s rules and forms, and (ii)&nbsp;accumulated and communicated to the Company&#8217;s
management, including the Chief Executive Officer and Chief Financial Officer, as appropriate to allow timely decisions regarding
required disclosure.</p>

<p style="font-size: 10pt; margin: 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0"></p>

<!-- Field: Page; Sequence: 22; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->22<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="font-size: 10pt; margin: 0">An evaluation was also performed under the supervision and with the participation of our
management, including the Company&#8217;s Chief Executive Officer and Chief Financial Officer, of any change in our internal control
over financial reporting that occurred during our last fiscal quarter that has materially affected, or is reasonably likely to
materially affect, the Company&#8217;s internal control over financial reporting. That evaluation did not identify any change in
the Company&#8217;s internal control over financial reporting that occurred during our latest fiscal quarter that has materially
affected, or is reasonably likely to materially affect, the Company&#8217;s internal control over financial reporting.</p>

<p style="font-size: 10pt; margin: 0"></p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b><a name="a_010"></a>PART II:</b></td><td><b>OTHER INFORMATION</b></td></tr></table>

<p style="margin: 0; font-size: 10pt"></p>


<p style="font-size: 10pt; margin: 0 0 0 63pt; text-indent: -63pt"></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b><a name="a_011"></a>ITEM 1A:</b></td><td><b>RISK FACTORS</b></td></tr></table>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">There have been no material changes from the risk factors previously disclosed in Part 1
- Item 1A of the Company&#8217;s Annual Report on Form 10-K for the fiscal year ended December 31, 2018.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b><a name="a_012"></a>ITEM 2:</b></td><td><b>UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS</b></td></tr></table>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"><b><i>Issuer&#8217;s Purchases of Equity Securities</i></b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">On June 16, 2015, the Company issued a press release announcing that its Board of
Directors authorized the repurchase of up to $10.0 million of the Company&#8217;s outstanding common stock.  Through June 30,
2019, the Company had repurchased a total of 29,559 shares of its common stock under this program at a cost of approximately
$587 thousand  (none of which were during the six-month period ended June 30, 2019). At June 30, 2019, approximately $9.4 million was available for future repurchases of the Company's common
stock under this authorization.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b><a name="a_013"></a>ITEM 6:</b></td><td><b>EXHIBITS</b></td></tr></table>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td style="width: 12%; text-align: center"><font style="font-size: 10pt"><u>Exhibit No.</u></font></td>
    <td style="width: 88%"><font style="font-size: 10pt"><u>Description</u></font></td></tr>
<tr style="vertical-align: top">
    <TD STYLE="text-align: center"><A HREF="exh_101.htm">
   10.1
     </A></td>
    <td><A HREF="exh_101.htm">
        Form of Non-Qualified Stock Option Agreement
#*      </A></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><A HREF="exh_102.htm">10.2</A></td>
    <td><A HREF="exh_102.htm">Form of 2019 Stock Unit Award Agreement #*</A></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt"><a href="exh_311.htm">31.1</a></font></td>
    <td><font style="font-size: 10pt"><a href="exh_311.htm">Rule&nbsp;13a-14(a)/15d-14(a)&nbsp;Certification of the Chief Executive Officer.*</a></font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt"><a href="exh_312.htm">31.2</a></font></td>
    <td><font style="font-size: 10pt"><a href="exh_312.htm">Rule&nbsp;13a-14(a)/15d-14(a)&nbsp;Certification of the Chief Financial Officer.*</a></font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt"><a href="exh_321.htm">32.1</a></font></td>
    <td><font style="font-size: 10pt"><a href="exh_321.htm">Certifications pursuant to 18 U.S.C., Section&nbsp;1350, as adopted pursuant to Section&nbsp;906 of the Sarbanes-Oxley Act of 2002.**</a></font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt">101.INS</font></td>
    <td><font style="font-size: 10pt">XBRL Instance Document.*</font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt">101.SCH</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Extension Schema Document.*</font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt">101.CAL</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Calculation Linkbase Document.*</font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt">101.LAB</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Label Linkbase Document.*</font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt">101.PRE</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Presentation Linkbase Document.*</font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><font style="font-size: 10pt">101.DEF</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Extension Definition Linkbase Document.*</font></td></tr>
</table>
<p style="margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; font-size: 10pt">__________________</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 18pt"></td><td style="width: 27.35pt">*</td><td>Filed herewith.</td></tr></table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0; margin-bottom: 0"><tr style="vertical-align: top">
<td style="width: 18pt"></td><td style="width: 27pt">**</td><td>Furnished herewith.</td></tr></table>

<p style="margin: 0 0 0 0.5in; font-size: 10pt; text-indent: -0.25in"># Indicates management contract or compensatory plan or arrangement.</p>

<p style="margin: 0 0 0 45pt; font-size: 10pt; text-indent: -27pt"></p>

<p style="margin: 0 0 0 45pt; font-size: 10pt; text-indent: -27pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b></b></p>

<!-- Field: Page; Sequence: 23; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 33%">&nbsp;</td><td style="width: 34%; text-align: center"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->23<!-- Field: /Sequence --></td><td style="width: 33%; text-align: right">&nbsp;</td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt">&nbsp;</p></div>
    <!-- Field: /Page -->

<p style="margin: 0; font-size: 10pt; text-align: center"><b><a name="a_014"></a><u>SIGNATURES</u></b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt">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.</p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt; text-align: center">UFP TECHNOLOGIES, INC.</p>

<p style="margin: 0; font-size: 10pt; text-align: center">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: bottom">
    <td style="width: 45%"><font style="font-size: 10pt">Date:&nbsp;&nbsp;August 9, 2019</font></td>
    <td style="width: 3%">&nbsp;</td>
    <td style="width: 52%; border-bottom: Black 1pt solid"><font style="font-size: 10pt">By:&nbsp;&nbsp;&nbsp;&nbsp;/s/ R. Jeffrey Bailly</font></td></tr>
<tr>
    <td style="vertical-align: top; padding-left: 0.2pt; text-align: center">&nbsp;</td>
    <td style="vertical-align: bottom">&nbsp;</td>
    <td style="vertical-align: bottom">
        <p style="font-size: 10pt; text-align: left; margin: 0">R. Jeffrey Bailly</p>
        <p style="font-size: 10pt; margin: 0">Chairman, Chief Executive Officer, President, and Director</p>
        <p style="font-size: 10pt; margin: 0">(Principal Executive Officer)</p></td></tr>
<tr>
    <td style="vertical-align: top; padding-left: 0.2pt; text-align: center">&nbsp;</td>
    <td style="vertical-align: bottom">&nbsp;</td>
    <td style="vertical-align: bottom">&nbsp;</td></tr>
<tr style="vertical-align: bottom">
    <td><font style="font-size: 10pt">Date: &nbsp;August 9, 2019</font></td>
    <td>&nbsp;</td>
    <td style="border-bottom: Black 1pt solid"><font style="font-size: 10pt">By:&nbsp;&nbsp;&nbsp;&nbsp;/s/ Ronald J. Lataille&nbsp;</font></td></tr>
<tr>
    <td style="vertical-align: top; padding-left: 0.2pt; text-align: center">&nbsp;</td>
    <td style="vertical-align: bottom">&nbsp;</td>
    <td style="vertical-align: bottom">
        <p style="font-size: 10pt; text-align: left; margin: 0">Ronald J. Lataille</p>
        <p style="font-size: 10pt; margin: 0">Chief Financial Officer</p>
        <p style="margin: 0; font-size: 10pt">(Principal Financial Officer)</p>
        <p style="margin: 0; font-size: 10pt">&nbsp;</p>
        <p style="margin: 0; font-size: 10pt"></p></td></tr>
</table>
<p style="margin: 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt; text-align: center; border-bottom: Black 4pt solid">24<b>&nbsp;</b></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0; font-size: 10pt"></p>

<p style="margin: 0; font-size: 10pt">&nbsp;</p>



<p style="margin: 0">&nbsp;</p>

<p style="margin: 0"></p>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.1
<SEQUENCE>2
<FILENAME>exh_101.htm
<DESCRIPTION>EXHIBIT 10.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0; text-align: right">EXHIBIT 10.1</P>

<P STYLE="margin: 0; text-align: left"><B>&nbsp;</B></P>

<P STYLE="margin: 0; text-align: left"><B>&nbsp;</B></P>

<P STYLE="margin: 0; text-align: left"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><FONT STYLE="font-size: 10pt"><U>Exhibit B</U></FONT></P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>



<P STYLE="margin: 0; text-align: left"><B>&nbsp;</B></P>

<P STYLE="margin: 0; text-align: left"><B></B></P>

<P STYLE="margin: 0; text-align: left"><B>&nbsp;</B></P>

<P STYLE="margin: 0; text-align: left"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B><U>NON-QUALIFIED STOCK OPTION AGREEMENT</U></B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0; text-align: center"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">OPTION AGREEMENT made as of the 5<SUP>th</SUP> day of June, 2019
between UFP TECHNOLOGIES, INC., a Delaware corporation (hereinafter called the &ldquo;Corporation&rdquo;), and _____________, a
non-employee director of the Corporation (hereinafter called the &ldquo;Optionee&rdquo;).</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">The Corporation desires, by affording the Optionee an opportunity
to purchase shares of its Common Stock, $.01 par value (hereinafter called the &ldquo;Common Stock&rdquo;), as hereinafter provided,
to carry out the purpose of the 2009 Non-Employee Director Stock Incentive Plan of the Corporation (the &ldquo;Director Stock Plan&rdquo;).
Terms used herein and not defined shall have the meaning set forth in the Director Stock Plan or in Section 9 below.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">NOW, THEREFORE, in consideration of the mutual covenants hereinafter
set forth and for other good and valuable consideration, the parties hereto have agreed, and do hereby agree as follows:</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">1. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Grant of Option</U>.
The Corporation hereby irrevocably grants to the Optionee the right and option (hereinafter called the &ldquo;Option&rdquo;) to
purchase all or any part of an aggregate of _______ shares of the Common Stock (such number being subject to adjustment as provided
in paragraph 6 hereof) on the terms and conditions herein set forth.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">2. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Purchase Price</U>.
The exercise price of each of the shares of the Common Stock covered by the Option shall be $_________, representing the fair market
value as of the date hereof.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Term of Option; Exercisability</U>.
The term of the Option shall be for a period of ten (10) years from the date hereof. Except as otherwise provided in paragraph
5 hereof, the Option shall become exercisable in full on May 31, 2020, provided however, that the Option shall immediately become
exercisable in full immediately prior to a Change in Control consummated on or prior to May 31, 2020. The purchase price of the
shares as to which the Option shall be exercised shall be paid at the time of exercise as provided in paragraph 7 hereof.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">The Corporation may, in its discretion, require as conditions to
the right to exercise this Option that (a) a Registration Statement under the Securities Act of 1933, as amended, shall be in effect
and current with respect to the shares issuable upon exercise of this Option, or (b) the Optionee has given to the Corporation
prior to the purchase of any shares pursuant hereto, assurances satisfactory to it that such shares are being purchased for the
purpose of investment and not with a view to or for sale in connection with any distribution thereof, including without limitation,
a written agreement of the Optionee that the shares will not be transferred unless registered under the Securities Act of 1933,
as amended, or unless counsel for the Corporation gives a written opinion that such transfer is permissible under Federal and State
law without registration.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 1 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">Nothing herein contained shall be deemed to require the Corporation
to register, under Federal or any State law, this Option or any shares issuable hereunder.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Non-transferability</U>.
The Option shall not be transferable otherwise than by will or the laws of descent and distribution, or pursuant to a qualified
domestic relations order as defined by the Internal Revenue Code (the &ldquo;Code&rdquo;), or Title I of the Employee Retirement
Income Security Act of 1974, as amended (&ldquo;ERISA&rdquo;), or the rules thereunder. Subject to the foregoing, and subject to
the provisions of Section 5 below, during the lifetime of the Optionee, the Option shall be exercisable only by the Optionee. More
particularly (but without limiting the generality of the foregoing), the Option may not be assigned, transferred (except as provided
above), pledged, or hypothecated in any way, shall not be assignable by operation of law and shall not be subject to execution,
attachment, or similar process. Any attempted assignment, transfer, pledge, hypothecation, or other disposition of the Option contrary
to the provisions hereof, and the levy of any execution, attachment, or similar process upon the Option shall be null and void
and without effect.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">5. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Termination Prior
to Vesting Date; Continued Exercisability; Exercise by Heirs, Legatees, Etc.</U> In the event the Optionee ceases to be an employee,
director or independent contractor of the Corporation or one or more of its subsidiaries (the &ldquo;Business Relationship&rdquo;)
prior to May 31, 2020 other than on account of death or permanent disability (as such term is defined in Section 22(e)(3) of the
Code), the Option shall thereupon terminate as of the date of termination of the Business relationship. Subject to the foregoing,
the continued exercisability of this Option shall not require the Optionee to continue in the service of the Board of Directors
of the Corporation for any particular period beyond such date, and the Option may be exercisable by the Optionee or by his or her
heirs, legatees, or legal representatives, as the case may be, during its specified term, but in any event not later than ten (10)
years from the date hereof.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 40.5pt; margin: 0pt 0">6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Changes in Capital
Structure</U>. The number of shares subject to the Option shall be adjusted as follows: (a) in the event that the number of outstanding
shares of Common Stock of the Corporation is changed by any stock dividend, stock split or combination of shares, the number of
shares then subject to the Option shall be proportionately adjusted; (b) in the event of any merger, consolidation or reorganization
of the Corporation with any other corporation or corporations, there shall be substituted, on an equitable basis for each share
of Common Stock then subject to the Option, the number and kind of shares of Stock or other securities to which the holders of
shares of Common Stock of the Corporation will be entitled pursuant to the transaction; and (c) in the event of any other relevant
change in the capitalization of the Corporation, the Board of Directors of the Corporation shall provide for an equitable adjustment
in the number of shares of Common Stock then subject to the Option. In the event of any such adjustment, the purchase price per
share shall be proportionately adjusted.</P>

<P STYLE="font-size: 10pt; text-indent: 40.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 40.5pt; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 2; Options: NewSection; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->2<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; text-indent: 40.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 40.5pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">7. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Method of Exercising
Option</U>. Subject to the terms and conditions of this Option Agreement, the Option may be exercised by written notice to the
Corporation at its principal business address attention of the Secretary. Such notice shall state the election to exercise the
Option and the number of shares in respect of which it is being exercised, and shall be signed by the person or persons so exercising
the Option. At that time, this Option Agreement shall be turned in to the Corporation for action by the Corporation to reduce the
number of shares to which it applies. Such notice shall be accompanied by payment in cash, by check, by shares of the Common Stock
of the Corporation, or, by a combination of these methods. Payment may also be made by delivery of a notice of &ldquo;net exercise&rdquo;
to the Corporation, pursuant to which the Optionee shall receive the number of shares of Stock underlying the Option so exercised
reduced by the number of shares of Stock equal to the aggregate exercise price of the Option divided by the Fair Market Value on
the date of exercise of the Option. Payment may also be made, in the discretion of the Corporation, if in accordance with applicable
law, by delivery (including delivery by facsimile transmission) to the Corporation or its designated agent of an executed irrevocable
option exercise form together with irrevocable instructions to a broker-dealer to sell a sufficient portion of the shares and deliver
the sale proceeds directly to the Corporation to pay for the exercise price or by any other means which the Compensation Committee
of the Board of Directors of the Corporation, in its discretion, determines to be consistent with the Plan&rsquo;s purpose and
applicable law. In the event that payment is made in shares of the Common Stock, the per share value of the Common Stock shall
be the Fair Market Value of such stock on the date of exercise. The certificate or certificates for the shares as to which the
Option shall have been so exercised shall be registered in the name of the person or persons so exercising the Option, (or, if
the Option shall be exercised by the Optionee and if the Optionee shall so request in the notice exercising the Option, the certificate
or certificates shall be registered in the name of the Optionee and another person jointly, with the right of survivorship) and
shall be delivered as provided above to or upon the written order of the person or persons exercising the Option. In the event
the Option shall be exercised by any person or persons other than the Optionee (to the extent permitted under this Non-Qualified
Stock Option Agreement), such notice shall be accompanied by appropriate proof of the right of such person or persons to exercise
the Option.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">At the time of the exercise of the Option the Corporation may require,
as a condition of the exercise of such Option, the Optionee to pay the Corporation an amount equal to the amount of tax the Corporation
may be required to withhold to obtain a deduction for federal income tax purposes as a result of the exercise of the Option by
the Optionee.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>General</U>. The Corporation
shall at all times during the term of the Option reserve and keep available such number of shares of Common Stock as will be sufficient
to satisfy the requirements of this Option Agreement, shall pay all original issue taxes with respect to the issue of shares pursuant
hereto and all other fees and expenses necessarily incurred by the Corporation in connection therewith, and will from time to time
use its best efforts to comply with all laws and regulations which, in the opinion of counsel for the Corporation, shall be applicable
thereto. The Corporation makes no representation or warranty that this Option or shares issued pursuant hereto qualify under any
Federal or State law for any special tax treatment. The terms of this Option Agreement shall be construed to conform with, and
shall be governed by the provisions of the Director Stock Plan and in the event of any inconsistency between the provisions of
this Option Agreement and such Plan the provisions of such Plan shall control.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">9.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Definitions</U>.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&ldquo;Business Combination&rdquo; shall mean
(i) the consummation of a reorganization, merger or consolidation or sale or disposition of all or substantially all of the assets
of the Corporation.</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 3; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->3<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&ldquo;Change in Control&rdquo; shall mean:
(i) a Business Combination, unless, in each case following such Business Combination, (A) all or substantially all of the individuals
and entities who were the beneficial owners of the Common Stock of the Corporation immediately before the consummation of such
Business Combination beneficially own, directly or indirectly, more than 50% of, respectively, the then outstanding shares of common
stock and the combined voting power of the then outstanding voting securities entitled to vote generally in the election of directors,
as the case may be, of the corporation resulting from such Business Combination (including, without limitation, a corporation that
as a result of the transaction owns the Corporation or all or substantially all of the assets of the Corporation either directly
or indirectly through one or more subsidiaries); and (B) no person or group (as defined in Section 13(d) or 14(d)(2) of the Securities
Exchange Act of 1934) of the Corporation or the corporation resulting from the Business Combination) beneficially owns, directly
or indirectly, more than 50% of the then outstanding shares of the common stock of the corporation resulting from the Business
Combination; (ii) individuals who, as of the date hereof constitute the Board of Directors of the Corporation (the &ldquo;Incumbent
Board&rdquo;) thereafter cease for any reason to constitute at least a majority of the Board of Directors of the Corporation, provided,
however, that any individual's becoming a director after the date of grant represented hereby whose election, or nomination for
election by the stockholders of the Corporation, was approved by a vote of at least a majority of the directors then comprising
the Incumbent Board will be considered as though the individual were a member of the Incumbent Board, but excluding, for this purpose,
any individual whose initial assumption of office occurs as a result of an actual or threatened election contest with respect to
the election or removal of directors or other actual or threatened solicitation of proxies or consents by or on behalf of a Person
other than the Board; or (iii) any person (as defined in Section 13(d) or 14(d)(2) of the Securities Exchange Act of 1934) shall
become at any time or in any manner the beneficial owner of capital stock of the Corporation representing more than 50% of the
voting power of the Corporation.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0"><B></B></P>

<!-- Field: Page; Sequence: 4; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0"><B>IN WITNESS WHEREOF</B>, the Corporation has caused this Option
Agreement to be duly executed by its officer thereunto duly authorized, and the Optionee has hereunto set his or her hand and seal
all as of the day and year first above written.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD><B>&nbsp;</B></TD>
    <TD COLSPAN="2"><B>UFP TECHNOLOGIES, INC.</B></TD>
    <TD>&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="width: 48%">&nbsp;</TD>

    <TD STYLE="width: 4%">&nbsp;</TD>
    <TD STYLE="width: 33%">&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>By:</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>R. Jeffrey Bailly</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD COLSPAN="2">[name of Optionee]</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD COLSPAN="2">Address</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
</TABLE>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0"><B></B></P>

<P STYLE="font-size: 10pt; margin-top: 0pt; text-align: center; margin-bottom: 0pt">5</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"><B></B></P>

<!-- Field: Rule-Page --><DIV ALIGN="CENTER" STYLE="margin-top: 3pt; margin-bottom: 3pt"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid; width: 100%">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0"><B></B></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.2
<SEQUENCE>3
<FILENAME>exh_102.htm
<DESCRIPTION>EXHIBIT 10.2
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0; text-align: right">EXHIBIT 10.2</P>

<P STYLE="margin: 0; text-align: right">&nbsp;</P>

<P STYLE="margin: 0; text-align: right"><B>&nbsp;</B></P>

<P STYLE="margin: 0; text-align: left"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B></B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><U>Exhibit A</U></P>



<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B></B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B></B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>STOCK UNIT AWARD AGREEMENT </B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">(Granted under the UFP Technologies, Inc. 2009 Director Stock Incentive
Plan)</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">1. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Award of Stock Unit Awards</U>.&nbsp;&nbsp;
UFP Technologies, Inc. (hereinafter the &ldquo;Company&rdquo;), in the exercise of its sole discretion pursuant to the UFP Technologies,
Inc. 2009 Director Stock Incentive Plan (the &ldquo;Plan&rdquo;), does on June 5, 2019 (the &ldquo;Award Date&rdquo;) hereby award
to ____________ (the &ldquo;Awardee&rdquo;) _____ Stock Unit Awards (&ldquo;SUAs&rdquo;) upon the terms and subject to the conditions
hereinafter contained. Capitalized terms used but not defined herein shall have the meanings assigned to them in the Plan. SUAs
represent the Company&rsquo;s unfunded and unsecured promise to issue shares of Common Stock at a future date, subject to the terms
of this Award Agreement and the Plan. Awardee has no rights under the SUA s other than the rights of a general unsecured creditor
of the Company. Terms used herein but not defined shall have the meanings set forth in Section 19 below or the meanings set forth
in the Plan.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;2. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Vesting Schedule and Conversion
of SUAs</U>.&nbsp;&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0; text-indent: 0.5in">(a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subject to the terms
of this Award Agreement and the Plan and provided that Awardee continues to serve as a director of the Company throughout the vesting
period set out below, the SUAs shall vest and be converted into an equivalent number of shares of Common Stock that will be distributed
to the Awardee as follows:</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<TABLE CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER" STYLE="font-size: 10pt; width: 50%; border-collapse: collapse">
<TR STYLE="vertical-align: bottom">
    <TD STYLE="border-top: black 1pt solid; border-right: Black 1pt solid; border-bottom: Black 1pt solid; border-left: Black 1pt solid; width: 50%">
        <P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>Vesting Date</B></P>
        <P STYLE="font-size: 10pt; margin: 0pt 0"></P></TD>
    <TD STYLE="border-top: black 1pt solid; border-right: black 1pt solid; border-bottom: black 1pt solid; width: 50%">
        <P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>Percentage<BR>
        of SUAs</B></P>
        <P STYLE="font-size: 10pt; margin: 0pt 0"></P></TD></TR>
<TR STYLE="background-color: #CCEEFF">
    <TD STYLE="vertical-align: top; border-left: Black 1pt solid; border-bottom: Black 1pt solid; font-size: 10pt; border-right: Black 1pt solid">May 31, 2020</TD>
    <TD STYLE="vertical-align: bottom; border-bottom: black 1pt solid; border-right: black 1pt solid; font-size: 10pt; layout-grid-mode: line; text-align: center">100%</TD></TR>
</TABLE>
<P STYLE="font-size: 10pt; margin: 0pt 0; text-indent: 1in">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notwithstanding the
vesting schedule set forth in subsection (a) above, if there is a Change in Control of the Company (as defined below), then so
long as the Awardee shall have continued to serve as a director of the Company through the date which is one day prior to the actual
closing date of the transaction giving rise to such Change in Control (the &ldquo;Acceleration Date&rdquo;), then all of the SUA&rsquo;s
that are unvested on the Acceleration Date shall immediately become vested in full on the Acceleration Date, subject, however,
to the provisions of Section 18 of this Award Agreement.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Termination of Awardee&rsquo;s Status
as a Director</U>.&nbsp;&nbsp; Subject to the provisions of Sections 4 and 5 below, in the event of termination, for any reason,
of Awardee&rsquo;s status as a director of the Company, Awardee&rsquo;s rights under this Award Agreement in any unvested SUAs
shall terminate.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Disability of Awardee</U>.&nbsp;&nbsp;
Notwithstanding the provisions of Section 3 above, in the event of termination of Awardee&rsquo;s status as a director of the Company
as a result of disability (within the meaning of Section 409A of the Internal Revenue Code, and hereinafter referred to as &ldquo;Disability&rdquo;),
the SUAs shall thereupon become vested in full as of the date of such termination, subject, however, to the provisions of Section
18 of this Award Agreement.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 1 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Death of Awardee</U>.&nbsp;&nbsp; Notwithstanding
the provisions of Section 3 above, in the event of the death of Awardee, if Awardee is, at the time of death, a director of the
Company, the SUAs shall thereupon become vested in full as of the date of such termination, subject, however, to the provisions
of Section 18 of this Award Agreement.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<U>Conversion of SUAs to shares of Common
Stock; Responsibility for Taxes</U>.&nbsp;&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(a)<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT>Provided Awardee has satisfied the requirements of Section 6(b) below, and subject, however, to the provisions of Section
18 of this Award Agreement, on the vesting of any SUAs, such vested SUAs shall be converted into an equivalent number of shares
of Common Stock that will be distributed to Awardee or, in the event of Awardee&rsquo;s death, to Awardee&rsquo;s legal representative,
as soon as practicable. An Awardee&rsquo;s rights with respect to the SUA&rsquo;s issued under this Award Agreement shall terminate
at the time such SUAs are converted into shares of Common Stock. The distribution to the Awardee, or in the case of the Awardee&rsquo;s
death, to the Awardee&rsquo;s legal representative, of shares of Common Stock in respect of the vested SUAs shall be evidenced
by a stock certificate, appropriate entry on the books of the Company or of a duly authorized transfer agent of the Company, or
other appropriate means as determined by the Company.</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(b)<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT>Prior to the issuance of shares of Common Stock upon vesting of SUAs as provided in Section 6(a) above, Awardee shall pay,
or make adequate arrangements satisfactory to the Company (in its sole discretion) to satisfy all withholding obligations of the
Company, to the extent applicable.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(c)<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT>Until the distribution to Awardee of the shares of Common Stock in respect to the vested SUAs is evidenced by a stock certificate,
appropriate entry on the books of the Company or of a duly authorized transfer agent of the Company, or other appropriate means,
Awardee shall have no right to vote or receive dividends or any other rights as a shareholder with respect to such shares of Common
Stock, notwithstanding the vesting of SUAs. Subject to the provisions of Section 18 of this Award Agreement, the Company shall
cause such distribution to Awardee to occur promptly upon the vesting of SUAs.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(d)<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT>Adjustments and other matters relating to stock dividends, stock splits, recapitalizations, reorganizations, Corporate Events
and the like shall be made and determined in accordance with Section 6 of the Plan, as in effect on the date of this Agreement.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">7.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Non-Transferability of SUAs</U>.&nbsp;&nbsp; Awardee&rsquo;s right in the SUAs awarded under this Award Agreement and
any interest therein may not be sold, pledged, assigned, hypothecated, transferred, or disposed of in any manner, other than by
will or by the laws of descent or distribution, prior to the distribution of the shares of Common Stock in respect of such SUAs.
SUAs shall not be subject to execution, attachment or other process.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">8.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Agreement of Awardee</U>. By accepting the Award, Awardee agrees to continue to serve as a director of the Company during
the term for which he or she was elected. By accepting the Award of SUAs evidenced by this Award Agreement, Awardee agrees not
to sell any of the shares of Common Stock received on account of vested SUAs at a time when applicable laws or Company policies
prohibit a sale. This restriction shall apply so long as Awardee is a director of the Company.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 2; Options: NewSection; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->2<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">9.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Acknowledgment of Nature of Plan and SUAs</U>.&nbsp;&nbsp; In accepting the Award, Awardee acknowledges that:</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(a) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Plan is established
voluntarily by the Company, it is discretionary in nature and may be modified, amended, suspended or terminated by the Company
at any time, as provided in the Plan;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(b) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Award of SUAs is
voluntary and occasional and does not create any contractual or other right to receive future awards of SUAs, or benefits in lieu
of SUAs even if SUAs have been awarded repeatedly in the past;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(c) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all decisions with
respect to future awards, if any, will be at the sole discretion of the Company;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(d) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Awardee&rsquo;s participation
in the Plan is voluntary;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(e) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the future value of
the underlying shares of Common Stock is unknown and cannot be predicted with certainty;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(f)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Awardee receives
shares of Common Stock, the value of such shares of Common Stock acquired on vesting of SUAs may increase or decrease in value;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(g)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Awardee acknowledges
and agrees that, in the event of termination of the Awardee&rsquo;s service on the Company&rsquo;s Board of Directors, regardless
of the reasons for such termination, Awardee has no right to, and will not bring any legal claim or action for, (i) any damages
for any portion of the SUAs that have been vested and converted into Common Shares, or (ii) termination of any unvested SUAs under
this Award Agreement.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">10.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Administration</U>.&nbsp;&nbsp; The authority to manage and control the operation and administration of this Award Agreement
shall be vested in the Committee (as defined in Section 2 of the Plan), and the Committee shall have all powers and discretion
with respect to this Award Agreement as it has with respect to the Plan. Any interpretation of the Award Agreement by the Committee
and any decision made by the Committee with respect to the Award Agreement shall be final and binding on all parties.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">11.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Plan Governs</U>.&nbsp;&nbsp; Notwithstanding anything in this Award Agreement to the contrary, the terms of this Award
Agreement shall be subject to the terms of the Plan, and this Award Agreement is subject to all interpretations, amendments, rules
and regulations promulgated by the Committee from time to time pursuant to the Plan.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">12.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Notices</U>.&nbsp;&nbsp; Any written notices provided for in this Award Agreement which are sent by mail shall be deemed
received three business days after mailing, but not later than the date of actual receipt. Notices shall be directed, if to Awardee,
at the Awardee&rsquo;s address indicated by the Company&rsquo;s records and, if to the Company, at the Company&rsquo;s principal
executive office.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 3; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->3<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">13.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Electronic Delivery</U>.&nbsp;&nbsp; The Company may, in its sole discretion, decide to deliver any documents related
to SUAs awarded under the Plan or future SUAs that may be awarded under the Plan by electronic means or request Awardee&rsquo;s
consent to participate in the Plan by electronic means. Awardee hereby consents to receive such documents by electronic delivery
and agrees to participate in the Plan through an on-line or electronic system established and maintained by the Company or another
third party designated by the Company.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">14.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Acknowledgment</U>.&nbsp;&nbsp; By Awardee&rsquo;s acceptance as evidenced below, Awardee further acknowledges that Awardee
has received and has read, understood and accepted all the terms, conditions and restrictions of this Award Agreement and the Plan.
Awardee understands and agrees that this Award Agreement is subject to all the terms, conditions, and restrictions stated in this
Award Agreement and the Plan, as the latter may be amended from time to time in the Company&rsquo;s sole discretion.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">15.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Governing Law</U>.&nbsp;&nbsp; This Award Agreement shall be governed by the laws of the State of Delaware, without regard
to Delaware laws that might cause other law to govern under applicable principles of conflicts of law.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">16.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Severability</U>.&nbsp;&nbsp; If one or more of the provisions of this Award Agreement shall be held invalid, illegal
or unenforceable in any respect, the validity, legality and enforceability of the remaining provisions shall not in any way be
affected or impaired thereby and the invalid, illegal or unenforceable provisions shall be deemed null and void; however, to the
extent permissible by law, any provisions which could be deemed null and void shall first be construed, interpreted or revised
retroactively to permit this Award Agreement to be construed so as to foster the intent of this Award Agreement and the Plan.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">17.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Complete Award Agreement and Amendment</U>.&nbsp;&nbsp; This Award Agreement and the Plan constitute the entire agreement
between Awardee and the Company regarding SUAs. Any prior agreements, commitments or negotiations concerning these SUAs are superseded.
This Award Agreement may be amended only by written agreement of Awardee and the Company, without consent of any other person.
Awardee agrees not to rely on any oral information regarding this Award of SUAs or any written materials not identified in this
Section 17.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">18.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Section 409A</U>. This Award Agreement is intended to be in compliance with the provisions of Section 409A of the Internal
Revenue Code, as amended (the &ldquo;Code&rdquo;), and the regulations thereunder to the extent applicable. To the extent that
any provision of this Agreement is ambiguous as to its compliance with Section 409A of the Code, the provision shall be read in
such a manner so that all payments hereunder comply with Section 409A of the Code. The parties agree that this Agreement may be
amended, as reasonably requested by either party, and as may be necessary to fully comply with Section 409A of the Code and all
related rules and regulations in order to preserve the payments and benefits provided hereunder without additional cost to either
party. Solely for the purposes of Section 409A of the Code, the share increments issuable on each vesting date on Schedule A shall
be considered a separate payment. The Company makes no representation or warranty and shall have no liability to the Awardee or
any other person if any provisions of this Agreement are determined to constitute deferred compensation subject to Section 409A
of the Code but do not satisfy an exemption from, or the conditions of, such Section.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 4; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0in; margin: 0pt 0">19.<FONT STYLE="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</FONT><U>Definitions</U>.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&ldquo;Business Combination&rdquo; shall mean
(i) the consummation of a reorganization, merger or consolidation or sale or disposition of all or substantially all of the assets
of the Company.</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&ldquo;Change in Control&rdquo; shall mean:
(i) a Business Combination, unless, in each case following such Business Combination, (A) all or substantially all of the individuals
and entities who were the beneficial owners of the Common Stock of the Company immediately before the consummation of such Business
Combination beneficially own, directly or indirectly, more than 50% of, respectively, the then outstanding shares of common stock
and the combined voting power of the then outstanding voting securities entitled to vote generally in the election of directors,
as the case may be, of the corporation resulting from such Business Combination (including, without limitation, a corporation that
as a result of the transaction owns the Company or all or substantially all of the assets of the Company either directly or indirectly
through one or more subsidiaries); and (B) no person or group (as defined in Section 13(d) or 14(d)(2) of the Securities Exchange
Act of 1934) of the Company or the corporation resulting from the Business Combination) beneficially owns, directly or indirectly,
more than 50% of the then outstanding shares of the common stock of the corporation resulting from the Business Combination; (ii)
individuals who, as of the date hereof constitute the Board of Directors of the Company (the &ldquo;Incumbent Board&rdquo;) thereafter
cease for any reason to constitute at least a majority of the Board of Directors of the Company, provided, however, that any individual's
becoming a director after the date of grant represented hereby whose election, or nomination for election by the stockholders of
the Company, was approved by a vote of at least a majority of the directors then comprising the Incumbent Board will be considered
as though the individual were a member of the Incumbent Board, but excluding, for this purpose, any individual whose initial assumption
of office occurs as a result of an actual or threatened election contest with respect to the election or removal of directors or
other actual or threatened solicitation of proxies or consents by or on behalf of a Person other than the Board; or (iii) any person
(as defined in Section 13(d) or 14(d)(2) of the Securities Exchange Act of 1934) shall become at any time or in any manner the
beneficial owner of capital stock of the Company representing more than 50% of the voting power of the Company.</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><I>[remainder of this page intentionally left blank; signature page
follows]</I></P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 5; Value: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin-top: 0pt; text-align: center; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->5<!-- Field: /Sequence --></P></DIV>
    <DIV STYLE="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; text-align: justify; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">EXECUTED as of the day and year first above written.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD><B>&nbsp;</B></TD>
    <TD COLSPAN="2">UFP TECHNOLOGIES, INC.</TD>
    <TD><B>&nbsp;</B></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="width: 48%">&nbsp;</TD>

    <TD STYLE="width: 4%">&nbsp;</TD>
    <TD STYLE="width: 33%">&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>By:</TD>
    <TD STYLE="border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>R. Jeffrey Bailly</TD>
    <TD>&nbsp;</TD>
    </TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>Chairman and Chief Executive Officer</TD>
    <TD>&nbsp;</TD>
    </TR>
</TABLE>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0; text-indent: 3in">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0; text-indent: 3in"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">AWARDEE&rsquo;S ACCEPTANCE:</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">I have read and fully understood this Award Agreement and I accept and agree to be bound
by all of the terms, conditions and restrictions contained in this Award Agreement and the other documents referenced in it.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="width: 33%; border-bottom: Black 1pt solid">&nbsp;</TD>
    <TD STYLE="width: 34%">&nbsp;</TD>
    <TD STYLE="width: 33%">&nbsp;</TD></TR>
</TABLE>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin-top: 0pt; text-align: center; margin-bottom: 0pt">6</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<!-- Field: Rule-Page --><DIV ALIGN="CENTER" STYLE="margin-top: 3pt; margin-bottom: 3pt"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid; width: 100%">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>exh_311.htm
<DESCRIPTION>EXHIBIT 31.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: right">EXHIBIT 31.1</P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B><U>Certification Pursuant to Section 302 of the Sarbanes-Oxley Act
of 2002</U></B></P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">I, R. Jeffrey Bailly, President and Chief Executive Officer of UFP Technologies, Inc. certify
that:</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">1.</TD><TD>I have reviewed this quarterly report on Form 10-Q of UFP Technologies, Inc.;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">2.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">3.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">4.</TD><TD>The registrant&rsquo;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:</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 31.5pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 31.5pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 31.5pt"></TD><TD STYLE="width: 13.5pt">c.</TD><TD>Evaluated the effectiveness of the registrant&rsquo;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</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 31.5pt"></TD><TD STYLE="width: 13.5pt">d.</TD><TD>Disclosed in this report any change in the registrant&rsquo;s internal control over financial reporting that occurred during
the registrant&rsquo;s most recent fiscal quarter (the registrant&rsquo;s fourth fiscal quarter in the case of an annual report)
that has materially affected, or is reasonably likely to materially affect, the registrant&rsquo;s internal control over financial
reporting; and</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 6pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">5.</TD><TD>The registrant&rsquo;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control
over financial reporting, to the registrant&rsquo;s auditors and the audit committee of the registrant&rsquo;s board of directors
(or persons performing the equivalent functions):</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 31.5pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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&rsquo;s ability to record, process, summarize and report financial
information; and</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 31.5pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&rsquo;s
internal control over financial reporting.</TD></TR></TABLE>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt"></P>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
<TR STYLE="vertical-align: middle">
    <TD STYLE="width: 50%">Date: August 9, 2019</TD>
    <TD STYLE="text-decoration: underline; width: 50%">/s/ R. Jeffrey Bailly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">R. Jeffrey Bailly</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">Chairman, Chief Executive Officer, President and Director</TD></TR>
<TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>(Principal Executive Officer)</TD></TR>
</TABLE>


<P STYLE="margin: 0; font-size: 10pt"></P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt"></P>



<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>exh_312.htm
<DESCRIPTION>EXHIBIT 31.2
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="margin: 0 0.9pt 0 0; font-size: 10pt; text-align: right">EXHIBIT 31.2</P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B><U>Certification Pursuant to Section 302 of the Sarbanes-Oxley Act
of 2002</U></B></P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">I, Ronald J. Lataille, Chief Financial Officer of UFP Technologies, Inc., certify that:</P>

<P STYLE="margin: 0; font-size: 10pt"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">1.</TD><TD>I have reviewed this quarterly report on Form 10-Q of UFP Technologies, Inc.;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">2.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">3.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">4.</TD><TD>The registrant&rsquo;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:</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 36pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 36pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>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;</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 36pt"></TD><TD STYLE="width: 13.5pt">c.</TD><TD>Evaluated the effectiveness of the registrant&rsquo;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</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 36pt"></TD><TD STYLE="width: 13.5pt">d.</TD><TD>Disclosed in this report any change in the registrant&rsquo;s internal control over financial reporting that occurred during
the registrant&rsquo;s most recent fiscal quarter (the registrant&rsquo;s fourth fiscal quarter in the case of an annual report)
that has materially affected, or is reasonably likely to materially affect, the registrant&rsquo;s internal control over financial
reporting; and</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 8pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 0.25in">5.</TD><TD>The registrant&rsquo;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control
over financial reporting, to the registrant&rsquo;s auditors and the audit committee of the registrant&rsquo;s board of directors
(or persons performing the equivalent functions):</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 36pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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&rsquo;s ability to record, process, summarize and report financial
information; and</TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 4pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 36pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&rsquo;s
internal control over financial reporting.</TD></TR></TABLE>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt"></P>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
<TR STYLE="vertical-align: middle">
    <TD STYLE="width: 50%">Date: August 9, 2019</TD>
    <TD STYLE="text-decoration: underline; width: 50%">/s/ Ronald J. Lataille&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">Ronald J. Lataille</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">Chief Financial Officer</TD></TR>
<TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>(Principal Financial Officer)</TD></TR>
</TABLE>


<P STYLE="margin: 0; font-size: 10pt"></P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt"></P>



<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>exh_321.htm
<DESCRIPTION>EXHIBIT 32.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="margin: 0 0.9pt 0 0.75in; font-size: 10pt; text-align: right">EXHIBIT 32.1</P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>Certification</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>(Subsections (a) and (b) of Section 1350, Chapter 63 of Title 18,
United States Code)</B></P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt; text-indent: 0.5in">Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (subsections
(a) and (b) of Section 1350, Chapter 63 of Title 18, United States Code), the undersigned officers of UFP Technologies, Inc., a
Delaware corporation (the &ldquo;Company&rdquo;) do hereby certify that, to the best of such officers&rsquo; knowledge and belief,
that:</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 6pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 22.5pt"><FONT STYLE="color: black">(1)</FONT></TD><TD><FONT STYLE="color: black">The Quarterly Report on Form 10-Q for the quarter ended June 30, 2019, (the &ldquo;Form 10-Q&rdquo;)
of the Company </FONT><FONT STYLE="color: windowtext">fully complies with the requirements of Section 13(a) or 15(d) of the Securities
Exchange Act of 1934; and </FONT></TD></TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 6pt; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 22.5pt">(2)</TD><TD>The information contained in the Form 10-Q fairly presents, in all materials respects, the financial condition and results
of operations of the Company.</TD></TR></TABLE>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt"></P>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
<TR STYLE="vertical-align: middle">
    <TD STYLE="width: 50%">Date: August 9, 2019</TD>
    <TD STYLE="text-decoration: underline; width: 50%">/s/ R. Jeffrey Bailly</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">R. Jeffrey Bailly</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">Chairman, Chief Executive Officer, President, and Director</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">(Principal Executive Officer)</TD></TR>
<TR>
    <TD STYLE="font-weight: bold; vertical-align: middle; text-align: center">&nbsp;</TD>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD></TR>
<TR>
    <TD STYLE="vertical-align: middle">&nbsp;</TD>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD></TR>
<TR STYLE="vertical-align: middle">
    <TD>Date: August 9, 2019</TD>
    <TD STYLE="text-decoration: underline">/s/ Ronald J. Lataille</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">Ronald J. Lataille</TD></TR>
<TR>
    <TD STYLE="vertical-align: bottom">&nbsp;</TD>
    <TD STYLE="vertical-align: middle">Chief Financial Officer</TD></TR>
<TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>(Principal Financial Officer)</TD></TR>
</TABLE>


<P STYLE="margin: 0; font-size: 10pt"></P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt">A signed original of these written statements required by Section 906 has been provided to
UFP Technologies, Inc. and will be retained by UFP Technologies, Inc. and furnished to the Securities and Exchange Commission or
its staff upon request.</P>

<P STYLE="margin: 0; font-size: 10pt">&nbsp;</P>



<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.INS
<SEQUENCE>7
<FILENAME>ufpt-20190630.xml
<DESCRIPTION>XBRL INSTANCE FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:02PM UTC 2019-08-08--><xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns="http://www.xbrl.org/2003/instance" xmlns:country="http://xbrl.sec.gov/country/2017-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:srt="http://fasb.org/srt/2019-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2011-01-31" xmlns:thunderdome="http://www.RDGFilings.com" xmlns:ufpt="http://www.ufpt.com/20190630" xmlns:us-gaap="http://fasb.org/us-gaap/2019-01-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <link:schemaRef xlink:href="ufpt-20190630.xsd" xlink:type="simple"/>
  <dei:AmendmentFlag contextRef="d_2019-01-01_2019-06-30" id="c-35">false</dei:AmendmentFlag>
  <dei:CurrentFiscalYearEndDate contextRef="d_2019-01-01_2019-06-30" id="c-24">--12-31</dei:CurrentFiscalYearEndDate>
  <dei:DocumentFiscalPeriodFocus contextRef="d_2019-01-01_2019-06-30" id="c-34">Q2</dei:DocumentFiscalPeriodFocus>
  <dei:DocumentFiscalYearFocus contextRef="d_2019-01-01_2019-06-30" id="c-33">2019</dei:DocumentFiscalYearFocus>
  <dei:DocumentPeriodEndDate contextRef="d_2019-01-01_2019-06-30" id="c-32">2019-06-30</dei:DocumentPeriodEndDate>
  <dei:DocumentType contextRef="d_2019-01-01_2019-06-30" id="c-31">10-Q</dei:DocumentType>
  <dei:EntityCentralIndexKey contextRef="d_2019-01-01_2019-06-30" id="c-22">0000914156</dei:EntityCentralIndexKey>
  <dei:EntityCommonStockSharesOutstanding contextRef="i_2019-08-01" decimals="INF" id="c-29" unitRef="xbrli-shares">7428229</dei:EntityCommonStockSharesOutstanding>
  <dei:EntityCurrentReportingStatus contextRef="d_2019-01-01_2019-06-30" id="c-26">Yes</dei:EntityCurrentReportingStatus>
  <dei:EntityEmergingGrowthCompany contextRef="d_2019-01-01_2019-06-30" id="c-27">false</dei:EntityEmergingGrowthCompany>
  <dei:EntityFilerCategory contextRef="d_2019-01-01_2019-06-30" id="c-25">Accelerated Filer</dei:EntityFilerCategory>
  <dei:EntityRegistrantName contextRef="d_2019-01-01_2019-06-30" id="c-21">UFP TECHNOLOGIES INC</dei:EntityRegistrantName>
  <dei:EntityShellCompany contextRef="d_2019-01-01_2019-06-30" id="c-30">false</dei:EntityShellCompany>
  <dei:EntitySmallBusiness contextRef="d_2019-01-01_2019-06-30" id="c-28">true</dei:EntitySmallBusiness>
  <dei:Security12bTitle contextRef="d_2019-01-01_2019-06-30" id="c-36">Common Stock</dei:Security12bTitle>
  <dei:TradingSymbol contextRef="d_2019-01-01_2019-06-30" id="c-23">ufpt</dei:TradingSymbol>
  <invest:DerivativeNotionalAmount contextRef="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c49437303" unitRef="iso4217-usd">20000000</invest:DerivativeNotionalAmount>
  <invest:DerivativeNotionalAmount contextRef="i_2019-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c49437307" unitRef="iso4217-usd">15700000</invest:DerivativeNotionalAmount>
  <ufpt:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-4" id="c49437320" unitRef="iso4217-usd">250000</ufpt:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
  <ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437100" unitRef="iso4217-usd">81424000</ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill>
  <ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437102" unitRef="iso4217-usd">946000</ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities>
  <ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436885" unitRef="iso4217-usd">280000</ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized>
  <ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436886" unitRef="iso4217-usd">236000</ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized>
  <ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436875" unitRef="iso4217-usd">1541000</ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers>
  <ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436876" unitRef="iso4217-usd">1855000</ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436723" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436724" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436725" unitRef="iso4217-usd">-95000</ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436727" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c49436728" unitRef="iso4217-usd">-95000</ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436772" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436773" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436774" unitRef="iso4217-usd">24000</ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436776" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436777" unitRef="iso4217-usd">24000</ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption>
  <ufpt:InitialRecognitionOfLeaseAssetAndLiability contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436895" unitRef="iso4217-usd">3831000</ufpt:InitialRecognitionOfLeaseAssetAndLiability>
  <ufpt:InitialRecognitionOfLeaseAssetAndLiability contextRef="d_2018-01-01_2018-06-30" id="c49436896" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:NumberOfLeaseTermOptions contextRef="i_2018-02-01_LeaseArrangementTypeAxis-DielectricsMember" decimals="INF" id="c49437324" unitRef="xbrli-pure">2</ufpt:NumberOfLeaseTermOptions>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436838" unitRef="iso4217-usd">440000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436839" unitRef="iso4217-usd">964000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-MedicalMember" decimals="3" id="c49437004" unitRef="xbrli-pure">0.643</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-MedicalMember" decimals="3" id="c49437006" unitRef="xbrli-pure">0.596</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-MedicalMember" decimals="3" id="c49437008" unitRef="xbrli-pure">0.628</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-MedicalMember" decimals="3" id="c49437010" unitRef="xbrli-pure">0.58</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c49437012" unitRef="xbrli-pure">0.096</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c49437014" unitRef="xbrli-pure">0.103</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c49437016" unitRef="xbrli-pure">0.108</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c49437018" unitRef="xbrli-pure">0.113</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-ConsumerMember" decimals="3" id="c49437020" unitRef="xbrli-pure">0.091</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-ConsumerMember" decimals="3" id="c49437022" unitRef="xbrli-pure">0.118</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-ConsumerMember" decimals="3" id="c49437024" unitRef="xbrli-pure">0.092</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-ConsumerMember" decimals="3" id="c49437026" unitRef="xbrli-pure">0.122</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c49437028" unitRef="xbrli-pure">0.08</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c49437030" unitRef="xbrli-pure">0.063</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c49437032" unitRef="xbrli-pure">0.077</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c49437034" unitRef="xbrli-pure">0.061</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-IndustrialMember" decimals="3" id="c49437036" unitRef="xbrli-pure">0.045</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-IndustrialMember" decimals="3" id="c49437038" unitRef="xbrli-pure">0.059</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-IndustrialMember" decimals="3" id="c49437040" unitRef="xbrli-pure">0.049</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-IndustrialMember" decimals="3" id="c49437042" unitRef="xbrli-pure">0.06</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c49437044" unitRef="xbrli-pure">0.045</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c49437046" unitRef="xbrli-pure">0.061</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c49437048" unitRef="xbrli-pure">0.046</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c49437050" unitRef="xbrli-pure">0.064</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-04-01_2019-06-30" decimals="3" id="c49437052" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-04-01_2018-06-30" decimals="3" id="c49437054" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-06-30" decimals="3" id="c49437056" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-06-30" decimals="3" id="c49437058" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevisionsPolicyPolicyTextBlock contextRef="d_2019-01-01_2019-06-30" id="c49437360">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revisions&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;Certain revisions have been made to the Condensed Consolidated Statements of Cash Flows for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2018, &lt;/div&gt;due to a reclassification of deferred &lt;div style="display: inline; color: windowtext"&gt;revenue. The reclassification resulted in a decrease to the change in deferred revenue and a decrease in the change in accrued expenses in the amount of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$573&lt;/div&gt;&lt;/div&gt; thousand. These revisions had &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt; impact on previously reported net income and are deemed immaterial to the previously issued financial statements.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</ufpt:RevisionsPolicyPolicyTextBlock>
  <ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-6">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; color: #8497B0; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid"&gt;Share-based compensation related to:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Common stock grants&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;205&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;200&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;305&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Stock option grants&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;118&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;32&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;134&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Restricted Stock Unit Awards ("RSUs")&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;277&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;130&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;464&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;252&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Total share-based compensation&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;401&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;453&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;696&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;691&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock>
  <ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49437225" unitRef="iso4217-usd-per-xbrli-shares">33.35</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49437226" unitRef="iso4217-usd-per-xbrli-shares">27.60</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <us-gaap:AccountsPayableCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436492" unitRef="iso4217-usd">5895000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsPayableCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436493" unitRef="iso4217-usd">6836000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436494" unitRef="iso4217-usd">7504000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436495" unitRef="iso4217-usd">8458000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2019-06-30" decimals="-3" id="c49436476" unitRef="iso4217-usd">56520000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2018-12-31" decimals="-3" id="c49436477" unitRef="iso4217-usd">54112000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AdditionalPaidInCapital contextRef="i_2019-06-30" decimals="-3" id="c49436520" unitRef="iso4217-usd">30033000</us-gaap:AdditionalPaidInCapital>
  <us-gaap:AdditionalPaidInCapital contextRef="i_2018-12-31" decimals="-3" id="c49436521" unitRef="iso4217-usd">29168000</us-gaap:AdditionalPaidInCapital>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436632" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436633" unitRef="iso4217-usd">271000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436634" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436636" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c49436637" unitRef="iso4217-usd">271000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436667" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436668" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436669" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436671" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-04-01_2019-06-30" id="c49436672" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436709" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436710" unitRef="iso4217-usd">144000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436711" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436713" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c49436714" unitRef="iso4217-usd">144000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436758" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436759" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436760" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436762" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-04-01_2018-06-30" id="c49436763" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_AwardTypeAxis-StockCompensationPlanMember" decimals="-3" id="c49437193" unitRef="iso4217-usd">188000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_AwardTypeAxis-StockCompensationPlanMember" decimals="-3" id="c49437194" unitRef="iso4217-usd">155000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-StockCompensationPlanMember" decimals="-3" id="c49437197" unitRef="iso4217-usd">348000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-StockCompensationPlanMember" decimals="-3" id="c49437198" unitRef="iso4217-usd">356000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436716" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436717" unitRef="iso4217-usd">167000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436718" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436720" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c49436721" unitRef="iso4217-usd">167000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436765" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436766" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436767" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436769" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-04-01_2018-06-30" id="c49436770" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-04-01_2019-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436902" unitRef="iso4217-usd">100000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-04-01_2018-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436903" unitRef="iso4217-usd">205000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436904" unitRef="iso4217-usd">200000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436905" unitRef="iso4217-usd">305000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-04-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436906" unitRef="iso4217-usd">24000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-04-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436907" unitRef="iso4217-usd">118000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436908" unitRef="iso4217-usd">32000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436909" unitRef="iso4217-usd">134000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-04-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436910" unitRef="iso4217-usd">277000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-04-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436911" unitRef="iso4217-usd">130000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436912" unitRef="iso4217-usd">464000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436913" unitRef="iso4217-usd">252000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-04-01_2019-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436914" unitRef="iso4217-usd">401000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-04-01_2018-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436915" unitRef="iso4217-usd">453000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436916" unitRef="iso4217-usd">696000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c49436917" unitRef="iso4217-usd">691000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="i_2019-06-30" decimals="-3" id="c49437330" unitRef="iso4217-usd">501000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
  <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="i_2018-12-31" decimals="-3" id="c49437331" unitRef="iso4217-usd">564000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49437274" unitRef="iso4217-usd">314000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49437355" unitRef="iso4217-usd">314000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49437277" unitRef="iso4217-usd">628000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49437278" unitRef="iso4217-usd">524000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2019-04-01_2019-06-30" decimals="INF" id="c49437253" unitRef="xbrli-shares">16536</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2019-01-01_2019-06-30" decimals="INF" id="c49437352" unitRef="xbrli-shares">16536</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2018-04-01_2018-06-30" decimals="INF" id="c49437258" unitRef="xbrli-shares">24280</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2018-01-01_2018-06-30" decimals="INF" id="c49437259" unitRef="xbrli-shares">25344</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:Assets contextRef="i_2019-06-30" decimals="-3" id="c49436490" unitRef="iso4217-usd">194965000</us-gaap:Assets>
  <us-gaap:Assets contextRef="i_2018-12-31" decimals="-3" id="c49436491" unitRef="iso4217-usd">189598000</us-gaap:Assets>
  <us-gaap:AssetsCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436472" unitRef="iso4217-usd">57934000</us-gaap:AssetsCurrent>
  <us-gaap:AssetsCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436473" unitRef="iso4217-usd">55626000</us-gaap:AssetsCurrent>
  <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c49437318" unitRef="xbrli-pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2018-04-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c49437112" unitRef="iso4217-usd-per-xbrli-shares">0.54</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c49437113" unitRef="iso4217-usd-per-xbrli-shares">0.76</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2018-04-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c49437114" unitRef="iso4217-usd-per-xbrli-shares">0.54</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c49437115" unitRef="iso4217-usd-per-xbrli-shares">0.75</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaInformationTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-20">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; font-size: 10pt"&gt;Sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;95,004&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Operating Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,669&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,084&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,990&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,566&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Earnings per share:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Basic&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.76&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Diluted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.75&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
  <us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax contextRef="d_2018-04-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437108" unitRef="iso4217-usd">5669000</us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax>
  <us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437109" unitRef="iso4217-usd">8084000</us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2018-04-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437110" unitRef="iso4217-usd">3990000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437111" unitRef="iso4217-usd">5566000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2018-04-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437106" unitRef="iso4217-usd">49019000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437107" unitRef="iso4217-usd">95004000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-4" id="c49437325" unitRef="iso4217-usd">1100000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436552" unitRef="iso4217-usd">0</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436553" unitRef="iso4217-usd">19000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2019-01-01_2019-06-30" id="c49436554" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436555" unitRef="iso4217-usd">1089000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437091" unitRef="iso4217-usd">76978000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272841">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Acquisition&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" font-size: 10pt; margin: 0; text-indent: 0in"&gt;&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt; text-indent: 27pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0 0 0 27pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 1, 2018 &lt;/div&gt;the Company purchased &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100%&lt;/div&gt; of the outstanding shares of common stock of Dielectrics Inc., pursuant to a stock purchase agreement and related agreements, for an aggregate purchase price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$80&lt;/div&gt;&amp;nbsp;million in cash. The purchase price was subject to adjustment based upon Dielectrics&amp;#x2019; working capital at closing. An additional &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$250&lt;/div&gt; thousand of consideration was paid by the Company as a result of the final working capital adjustment. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses and liabilities. The Purchase Agreement contains customary representations, warranties and covenants customary for transactions of this type.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 16; Value: 3 --&gt;  &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Founded in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1954&lt;/div&gt; and based in Chicopee, Massachusetts, Dielectrics is a leader in the design, development, and manufacture of medical devices using thermoplastic materials. They primarily use radio frequency and impulse welding to design and manufacture solutions for the medical industry. In addition to the long-standing customer relationships, they bring to the Company a seasoned management team and a profitable book of business. The Company has leased the Chicopee location from a realty trust owned by the selling shareholder and affiliates. The lease is for &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;five&lt;/div&gt; years with &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;two five&lt;/div&gt;-year renewal options.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management&amp;#x2019;s estimates of fair value (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 63pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 47pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;Consideration Paid:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Cash paid at closing&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;80,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Working capital adjustment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;250&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Cash from Dielectrics&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,272&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total consideration&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;Purchase Price Allocation:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Accounts receivable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,384&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Inventory&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,418&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Other current assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;122&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Property, plant and equipment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,600&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Customer list&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Non-compete&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Trade name and brand&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt"&gt;Goodwill&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;44,516&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total identifiable assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;81,424&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Accounts payable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,325&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Accrued expenses&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(946&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Deferred revenue&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,175&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Net Assets acquired&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 63pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt; color: windowtext"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Acquisition costs associated with the transaction were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.1&lt;/div&gt;&lt;/div&gt; million and were charged to expense in the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month period ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2018. &lt;/div&gt;These costs were primarily for investment banking and legal fees and are reflected on the face of the income statement.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The following table contains an unaudited pro forma condensed consolidated statement of operations for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2018, &lt;/div&gt;as if the Dielectrics acquisition had occurred at the beginning of the respective periods (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 0.5in; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt; text-indent: 1in"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; font-size: 10pt"&gt;Sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;95,004&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Operating Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,669&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,084&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,990&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,566&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Earnings per share:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Basic&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.76&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Diluted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.75&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt; text-indent: 1in"&gt;&lt;div style="display: inline; font-size: 10pt; color: windowtext"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 0.5in; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The above unaudited pro forma information is presented for illustrative purposes only and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be indicative of the results of operations that would have actually occurred had the Dielectrics acquisition occurred as presented. In addition, future results &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;vary significantly from the results reflected in such pro forma information.&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437094" unitRef="iso4217-usd">122000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437092" unitRef="iso4217-usd">4384000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437101" unitRef="iso4217-usd">1325000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437103" unitRef="iso4217-usd">2175000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c49437096" unitRef="iso4217-usd">22555000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c49437097" unitRef="iso4217-usd">462000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c49437098" unitRef="iso4217-usd">367000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437093" unitRef="iso4217-usd">4418000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437095" unitRef="iso4217-usd">4600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437104" unitRef="iso4217-usd">76978000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436893" unitRef="iso4217-usd">281000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436894" unitRef="iso4217-usd">331000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437090" unitRef="iso4217-usd">3272000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2019-06-30" decimals="-3" id="c49436462" unitRef="iso4217-usd">5231000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2018-12-31" decimals="-3" id="c49436463" unitRef="iso4217-usd">3238000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2017-12-31" decimals="-3" id="c49436847" unitRef="iso4217-usd">37978000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2018-06-30" decimals="-3" id="c49436849" unitRef="iso4217-usd">5915000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436844" unitRef="iso4217-usd">1993000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436845" unitRef="iso4217-usd">-32063000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashFlowSupplementalDisclosuresTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272816">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 0; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Supplemental Cash Flow Information&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-style: italic; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-style: italic; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; text-align: center"&gt;(in thousands)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Cash paid for:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Interest&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;268&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;668&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Income taxes, net of refunds&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;382&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;784&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Non-cash investing and financing activities:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Capital additions accrued but not yet paid&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;281&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;331&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Recognition of lease asset and liability (ASC 842)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,831&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2019-06-30" id="c49437378" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2018-12-31" id="c49437379" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="i_2019-06-30" decimals="INF" id="c49437340" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="i_2018-12-31" decimals="INF" id="c49437341" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <us-gaap:CommonStockSharesAuthorized contextRef="i_2019-06-30" decimals="INF" id="c49437342" unitRef="xbrli-shares">20000000</us-gaap:CommonStockSharesAuthorized>
  <us-gaap:CommonStockSharesAuthorized contextRef="i_2018-12-31" decimals="INF" id="c49437343" unitRef="xbrli-shares">20000000</us-gaap:CommonStockSharesAuthorized>
  <us-gaap:CommonStockSharesIssued contextRef="i_2019-06-30" decimals="INF" id="c49437344" unitRef="xbrli-shares">7457788</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesIssued contextRef="i_2018-12-31" decimals="INF" id="c49437345" unitRef="xbrli-shares">7415002</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2019-06-30" decimals="INF" id="c49437346" unitRef="xbrli-shares">7428229</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2018-12-31" decimals="INF" id="c49437347" unitRef="xbrli-shares">7385443</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockValue contextRef="i_2019-06-30" decimals="-3" id="c49436518" unitRef="iso4217-usd">74000</us-gaap:CommonStockValue>
  <us-gaap:CommonStockValue contextRef="i_2018-12-31" decimals="-3" id="c49436519" unitRef="iso4217-usd">74000</us-gaap:CommonStockValue>
  <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-3">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Liabilities&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Six Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt"&gt;Deferred revenue - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,507&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;871&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Acquired in Dielectrics business combination&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,175&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increases due to consideration received from customers&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,541&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,855&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Revenue recognized&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,097&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,570&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Deferred revenue - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,951&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,331&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Assets&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Six Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt"&gt;Unbilled Receivables - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Decreases due to customer invoicing&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(314&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Increases due to revenue recognized - not invoiced to customers&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;280&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;236&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Unbilled Receivables - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;236&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2018-12-31" decimals="-3" id="c49436881" unitRef="iso4217-usd">65000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2017-12-31" id="c49436882" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2019-06-30" decimals="-3" id="c49436887" unitRef="iso4217-usd">31000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2018-06-30" decimals="-3" id="c49436888" unitRef="iso4217-usd">236000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436883" unitRef="iso4217-usd">314000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2018-01-01_2018-06-30" id="c49436884" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2018-12-31" decimals="-3" id="c49436871" unitRef="iso4217-usd">2507000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2017-12-31" decimals="-3" id="c49436872" unitRef="iso4217-usd">871000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2019-06-30" decimals="-3" id="c49436879" unitRef="iso4217-usd">2951000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2018-06-30" decimals="-3" id="c49436880" unitRef="iso4217-usd">3331000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436496" unitRef="iso4217-usd">2951000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436497" unitRef="iso4217-usd">2507000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination contextRef="d_2019-01-01_2019-06-30" id="c49436873" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436874" unitRef="iso4217-usd">2175000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-01-01_2019-06-30_FairValueByAssetClassAxis-DeferredRevenueMember" decimals="-3" id="c49437178" unitRef="iso4217-usd">613000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2018-01-01_2018-06-30_FairValueByAssetClassAxis-DeferredRevenueMember" decimals="-3" id="c49437179" unitRef="iso4217-usd">437000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436877" unitRef="iso4217-usd">1097000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436878" unitRef="iso4217-usd">1570000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436540" unitRef="iso4217-usd">37028000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436541" unitRef="iso4217-usd">36033000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436542" unitRef="iso4217-usd">71859000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436543" unitRef="iso4217-usd">68779000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:DebtDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272839">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt; Indebtedness&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" font-size: 10pt; margin: 0; text-indent: 0in"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 1, 2018, &lt;/div&gt;the Company, as the borrower, entered into an unsecured &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$70&lt;/div&gt; million Amended and Restated Credit Agreement (the &amp;#x201c;Amended and Restated Credit Agreement&amp;#x201d;) with certain of the Company&amp;#x2019;s subsidiaries (the &amp;#x201c;Subsidiary Guarantors&amp;#x201d;) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit Agreement amends and restates the Company&amp;#x2019;s prior credit agreement.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The credit facilities under the Amended and Restated Credit Agreement (the &amp;#x201c;Amended and Restated Credit Facilities&amp;#x201d;) consist of a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$20&lt;/div&gt; million unsecured term loan and an unsecured revolving credit facility, under which the Company &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;borrow up to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$50&lt;/div&gt; million.&amp;nbsp; The Amended and Restated Credit Agreement matures on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 1, 2023.&amp;nbsp; &lt;/div&gt;The proceeds borrowed pursuant to the Amended and Restated Credit Agreement &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be used for general corporate purposes, as well as permitted acquisitions. The Company&amp;#x2019;s obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The Amended and Restated Credit Agreement calls for interest of LIBOR plus a margin that ranges from &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.0%&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.5%&lt;/div&gt; or, at the discretion of the Company, the bank&amp;#x2019;s prime rate less a margin that ranges from &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.25%&lt;/div&gt; to zero. In both cases the applicable margin is dependent upon Company performance.&amp;nbsp; Under the Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant.&amp;nbsp; The Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness and permitted investments.&amp;nbsp;As of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019, &lt;/div&gt;there were &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.7&lt;/div&gt; &lt;/div&gt;million in standby letters of credit outstanding drawable as a financial guarantee on worker&amp;#x2019;s compensation insurance policies. As of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019, &lt;/div&gt;the applicable interest rate was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3.4%,&lt;/div&gt; and the Company was in compliance with all covenants under the Amended and Restated Credit Agreement.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 15; Value: 3 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;Long-term debt consists of the following (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0 0 0 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0 0 0 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30, &lt;br /&gt; 2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;br /&gt; 2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left"&gt;Revolving credit facility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Term loan&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,428&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,143&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total long-term debt&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,428&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25,143&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,571&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,857&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Long-term debt, excluding current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,857&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,286&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0 0 0 27.35pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Derivative Financial Instruments&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&gt;The Company uses interest-rate-related derivative instruments to manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; enter into derivative instruments for any purpose other than cash flow hedging. The Company does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; speculate using derivative instruments. By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself to credit risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When the fair value of a derivative contract is positive, the counterparty owes the Company, which creates credit risk for the Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; exposed to the counterparty&amp;#x2019;s credit risk. The Company minimizes counterparty credit risk in derivative instruments by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk is the adverse effect on the value of a derivative instrument that results from a change in interest rates. The market risk associated with interest-rate contracts is managed by establishing and monitoring parameters that limit the types and degree of market risk that &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be undertaken. The Company assesses interest rate risk by continually identifying and monitoring changes in interest rate exposures that &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&amp;#x2019;s debt obligations expose the Company to variability in interest payments due to changes in interest rates. The Company believes that it is prudent to limit the variability of a portion of its interest payments. To meet this objective, &lt;/div&gt;in connection with the Amended and Restated Credit Agreement, the Company entered into a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$20&lt;/div&gt;&amp;nbsp;million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;-year interest rate swap agreement under which the Company receives &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-month LIBOR plus the applicable margin and pays a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7%&lt;/div&gt; fixed rate plus the applicable margin. The swap modifies the Company&amp;#x2019;s interest rate exposure by converting the term loan from a variable rate to a fixed rate to hedge against the possibility of rising interest rates during the term of the loan. The notional amount was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$15.7&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019. &lt;/div&gt;The fair value of the swap as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;was approximately $(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;373&lt;/div&gt;) thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$64&lt;/div&gt; thousand, respectively, and are included in other liabilities and other assets on the condensed consolidated balance sheets, respectively. Changes in the fair value of the swap are recorded in other expense (income) on the condensed consolidated statements of income and were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$198&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$437&lt;/div&gt; thousand during the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-months ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019, &lt;/div&gt;and $(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;) thousand and $(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;53&lt;/div&gt;) thousand, respectively during the same periods in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" decimals="4" id="c49437294" unitRef="xbrli-pure">0.01</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" decimals="4" id="c49437295" unitRef="xbrli-pure">0.015</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-PrimeRateMember" decimals="4" id="c49437296" unitRef="xbrli-pure">0.0025</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentFaceAmount contextRef="i_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c49437291" unitRef="iso4217-usd">70000000</us-gaap:DebtInstrumentFaceAmount>
  <us-gaap:DebtInstrumentFaceAmount contextRef="i_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_DebtInstrumentAxis-UnsecuredTermLoanMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c49437292" unitRef="iso4217-usd">20000000</us-gaap:DebtInstrumentFaceAmount>
  <us-gaap:DebtInstrumentInterestRateEffectivePercentage contextRef="i_2019-06-30_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="4" id="c49437298" unitRef="xbrli-pure">0.034</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
  <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent contextRef="i_2019-06-30" decimals="-3" id="c49436508" unitRef="iso4217-usd">2595000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
  <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c49436509" unitRef="iso4217-usd">2044000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
  <us-gaap:DeferredCompensationPlanAssets contextRef="i_2019-06-30" decimals="-3" id="c49436484" unitRef="iso4217-usd">2573000</us-gaap:DeferredCompensationPlanAssets>
  <us-gaap:DeferredCompensationPlanAssets contextRef="i_2018-12-31" decimals="-3" id="c49436485" unitRef="iso4217-usd">2034000</us-gaap:DeferredCompensationPlanAssets>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436800" unitRef="iso4217-usd">837000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436801" unitRef="iso4217-usd">688000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredTaxLiabilitiesNoncurrent contextRef="i_2019-06-30" decimals="-3" id="c49436506" unitRef="iso4217-usd">4966000</us-gaap:DeferredTaxLiabilitiesNoncurrent>
  <us-gaap:DeferredTaxLiabilitiesNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c49436507" unitRef="iso4217-usd">4129000</us-gaap:DeferredTaxLiabilitiesNoncurrent>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436794" unitRef="iso4217-usd">4050000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436795" unitRef="iso4217-usd">3874000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DerivativeAssets contextRef="i_2019-06-30_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember" decimals="-3" id="c49436899" unitRef="iso4217-usd">-373000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeAssets contextRef="i_2018-06-30_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember" decimals="-3" id="c49436900" unitRef="iso4217-usd">64000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeFairValueOfDerivativeNet contextRef="i_2019-06-30_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c49437308" unitRef="iso4217-usd">-373000</us-gaap:DerivativeFairValueOfDerivativeNet>
  <us-gaap:DerivativeFairValueOfDerivativeNet contextRef="i_2018-12-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c49437309" unitRef="iso4217-usd">64000</us-gaap:DerivativeFairValueOfDerivativeNet>
  <us-gaap:DerivativeFixedInterestRate contextRef="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="4" id="c49437306" unitRef="xbrli-pure">0.027</us-gaap:DerivativeFixedInterestRate>
  <us-gaap:DerivativeLossOnDerivative contextRef="d_2019-04-01_2019-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="-3" id="c49437310" unitRef="iso4217-usd">198000</us-gaap:DerivativeLossOnDerivative>
  <us-gaap:DerivativeLossOnDerivative contextRef="d_2019-01-01_2019-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="-3" id="c49437311" unitRef="iso4217-usd">437000</us-gaap:DerivativeLossOnDerivative>
  <us-gaap:DerivativeLossOnDerivative contextRef="d_2018-04-01_2018-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="-3" id="c49437314" unitRef="iso4217-usd">3000</us-gaap:DerivativeLossOnDerivative>
  <us-gaap:DerivativeLossOnDerivative contextRef="d_2018-01-01_2018-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="-3" id="c49437315" unitRef="iso4217-usd">53000</us-gaap:DerivativeLossOnDerivative>
  <us-gaap:DerivativeTermOfContract contextRef="d_2018-02-01_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" id="c49437304">P5Y</us-gaap:DerivativeTermOfContract>
  <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-2">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid"&gt;Net sales of:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Products&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50,576&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47,102&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;96,984&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;89,246&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Tooling and Machinery&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;323&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,107&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;969&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,598&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Engineering services&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;500&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;810&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;773&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,105&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Total net sales&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;51,399&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;98,726&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;91,949&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
  <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272820">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Share-Based Compensation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018. &lt;/div&gt;The compensation cost charged against income for those plans is included in selling, general &amp;amp; administrative expenses as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; color: #8497B0; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid"&gt;Share-based compensation related to:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Common stock grants&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;205&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;200&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;305&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Stock option grants&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;118&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;32&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;134&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Restricted Stock Unit Awards ("RSUs")&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;277&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;130&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;464&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;252&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Total share-based compensation&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;401&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;453&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;696&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;691&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;The total income tax benefit recognized in the condensed consolidated statements of income for share-based compensation arrangements was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$188&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$155&lt;/div&gt; thousand for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;&lt;/div&gt;, respectively, and approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$348&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$356&lt;/div&gt; thousand for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;30,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;&lt;/div&gt;, respectively.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 27.9pt 0 27pt; font-size: 10pt"&gt;The following is a summary of stock option activity under all plans for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month period ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;30&lt;/div&gt;&lt;div style="display: inline; color: windowtext"&gt;, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt;&lt;/div&gt;:&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Shares Under&lt;br /&gt; Options&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted &lt;br /&gt; Average &lt;br /&gt; Exercise Price &lt;br /&gt; &lt;/div&gt;&lt;div style="display: inline; font-size: 10pt; font-style: normal"&gt;(per share)&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted &lt;br /&gt; Average &lt;br /&gt; Remaining&lt;br /&gt; Contractual &lt;br /&gt; Life &lt;br /&gt; &lt;/div&gt;&lt;div style="display: inline; font-size: 10pt; font-style: normal"&gt;(in years)&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate &lt;br /&gt; Intrinsic &lt;br /&gt; Value &lt;div style="display: inline; font-size: 10pt; font-style: normal"&gt;&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-size: 10pt"&gt;(in thousands)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Outstanding at December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;134,043&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20.46&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-decoration: line-through"&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"&gt;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-decoration: line-through; text-align: right"&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Granted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Exercised&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(31,058&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14.18&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Outstanding at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;119,521&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.61&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.68&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,032&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Exercisable at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;95,485&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21.86&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.12&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,886&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Vested and expected to vest at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;119,521&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.61&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.68&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,032&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 10; Value: 3 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 5, 2019, &lt;/div&gt;the Company granted options to its directors for the purchase of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;210,000&lt;/div&gt; shares of common stock at that day&amp;#x2019;s closing price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$38.61.&lt;/div&gt; The compensation expense related to these grants was determined as the fair value of the options using the Black-Scholes option pricing model based on the following assumptions:&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table border="0" cellpadding="0" cellspacing="0" style="; border-collapse: collapse; font-size: 10pt; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%"&gt;Expected volatility&lt;/td&gt; &lt;td style="text-align: left; width: 30%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.9%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Expected dividends&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Risk-free interest rate&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.3%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Exercise price&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$38.61&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Expected term&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0 years&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Weighted-average grant date fair value&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$12.70&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt; color: windowtext"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The stock volatility for each grant is determined based on a review of the experience of the weighted average of historical daily price changes of the Company&amp;#x2019;s common stock over the expected option term, and the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding with the expected term of the option. The expected term is estimated based on historical option exercise activity.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;During the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the total intrinsic value of all options exercised (i.e., the difference between the market price on the exercise date and the price paid by the employees to exercise the options) was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$628&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.0&lt;/div&gt; million, respectively, and the total amount of consideration received by the Company from the exercised options was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$440&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$965&lt;/div&gt; thousand, respectively. At its discretion, the Company allows option holders to surrender previously-owned common stock in lieu of paying the exercise price and withholding taxes. During the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt; shares were surrendered for this purpose.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 19, 2019, &lt;/div&gt;the Company&amp;#x2019;s Compensation Committee approved &lt;/div&gt;&lt;div style="display: inline; color: black"&gt;the award of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$400&lt;/div&gt; thousand, payable in shares of common stock to the Company&amp;#x2019;s Chairman, Chief Executive Officer, and President under the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2003&lt;/div&gt; &lt;/div&gt;&lt;div style="display: inline; color: windowtext"&gt;Incentive Plan, subject to his continued employment and the terms of his employment agreement. The shares will be issued in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 2019. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The following table summarizes information about RSU activity during the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month period ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019:&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="2" style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Restricted &lt;br /&gt; Stock Units&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Weighted Average&lt;br /&gt; Award Date&lt;br /&gt; Fair Value&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 73%; font-size: 10pt; text-align: left"&gt;Outstanding at December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72,176&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.60&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Awarded&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;67,152&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33.50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Shares vested&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(19,860&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.53&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Outstanding at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;119,468&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.64&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;At the Company&amp;#x2019;s discretion, RSU holders are given the option to net-share settle to cover the required minimum withholding tax and the remaining amount is converted into the equivalent number of common shares. During the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,132&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,238&lt;/div&gt; shares were surrendered at an average market price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$33.35&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$27.60,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&gt;As of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019, &lt;/div&gt;the Company had approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$3.2&lt;/div&gt; million of unrecognized compensation expense that is expected to be recognized over a period of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3.8&lt;/div&gt; years&lt;/div&gt;.&lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-04-01_2019-06-30" decimals="INF" id="c49436592" unitRef="iso4217-usd-per-xbrli-shares">0.62</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-04-01_2018-06-30" decimals="INF" id="c49436593" unitRef="iso4217-usd-per-xbrli-shares">0.54</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-01-01_2019-06-30" decimals="INF" id="c49436594" unitRef="iso4217-usd-per-xbrli-shares">1.12</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-01-01_2018-06-30" decimals="INF" id="c49436595" unitRef="iso4217-usd-per-xbrli-shares">0.79</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-04-01_2019-06-30" decimals="INF" id="c49436596" unitRef="iso4217-usd-per-xbrli-shares">0.62</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-04-01_2018-06-30" decimals="INF" id="c49436597" unitRef="iso4217-usd-per-xbrli-shares">0.54</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-01-01_2019-06-30" decimals="INF" id="c49436598" unitRef="iso4217-usd-per-xbrli-shares">1.11</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-01-01_2018-06-30" decimals="INF" id="c49436599" unitRef="iso4217-usd-per-xbrli-shares">0.78</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272831">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Income Per Share&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The weighted average number of shares used to compute basic and diluted net income per share consisted of the following (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 13; Value: 3 --&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Basic weighted average common shares outstanding&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,423&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,347&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,413&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,336&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt; text-indent: -10pt"&gt;Weighted average common equivalent shares due to stock, stock options and RSUs&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;44&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;66&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;60&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Diluted weighted average common shares outstanding&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,467&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,413&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,473&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,408&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; included in the computation of diluted income per share because the effect would be antidilutive. For both the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019&lt;/div&gt;&lt;/div&gt;, the number of stock awards excluded from the computation of diluted earnings per share for this reason was &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536&lt;/div&gt;.&lt;/div&gt; For the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;30,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;&lt;/div&gt;, the number of stock awards excluded from the computation of diluted earnings per share for this reason was &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24,280&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25,344,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2019-04-01_2019-06-30" decimals="3" id="c49437282" unitRef="xbrli-pure">0.256</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2018-04-01_2018-06-30" decimals="3" id="c49437283" unitRef="xbrli-pure">0.244</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2019-01-01_2019-06-30" decimals="3" id="c49437286" unitRef="xbrli-pure">0.24</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2018-01-01_2018-06-30" decimals="3" id="c49437287" unitRef="xbrli-pure">0.245</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2019-06-30" decimals="-3" id="c49437227" unitRef="iso4217-usd">3200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="d_2019-01-01_2019-06-30" id="c49437228">P3Y292D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-5">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Level 2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;br /&gt; 2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;br /&gt; 2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;(Liabilities) Assets:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Derivative financial instruments&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(373&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;64&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
  <us-gaap:FairValueDisclosuresTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272818">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Fair Value of Financial Instruments&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;820,&lt;/div&gt; &lt;div style="display: inline; font-style: italic;"&gt;Fair Value Measurements and Disclosures&lt;/div&gt;, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&amp;#x2019;s anticipated life.&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 45.35pt; font-size: 10pt"&gt;Valued based on management&amp;#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The following table presents the fair value and hierarchy levels, for financial assets that are measured at fair value on a recurring basis (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 9; Value: 3 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Level 2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;br /&gt; 2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;br /&gt; 2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;(Liabilities) Assets:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Derivative financial instruments&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(373&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;64&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Derivative financial instruments consist of an interest rate swap for which fair value is determined through the use of a pricing model that utilizes verifiable inputs such as market interest rates that are observable at commonly quoted intervals for the full term of the swap agreement.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&gt;The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&amp;#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company&lt;/div&gt;.&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
  <us-gaap:FinanceLeaseLiability contextRef="i_2019-01-01" decimals="-3" id="c49437241" unitRef="iso4217-usd">0</us-gaap:FinanceLeaseLiability>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-01-01_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" id="c49437362">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-01-01_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c49437363">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-01-01_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" id="c49437364">P20Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-01-01_2019-06-30" id="c49437365" xs:nil="true"/>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c49437370" unitRef="iso4217-usd">52000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c49437371" unitRef="iso4217-usd">131000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c49437372" unitRef="iso4217-usd">1598000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-06-30" decimals="-3" id="c49437373" unitRef="iso4217-usd">1781000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="i_2019-06-30" decimals="-3" id="c49437076" unitRef="iso4217-usd">16032000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear contextRef="i_2019-06-30" decimals="-3" id="c49437071" unitRef="iso4217-usd">628000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="i_2019-06-30" decimals="-3" id="c49437075" unitRef="iso4217-usd">1172000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="i_2019-06-30" decimals="-3" id="c49437074" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="i_2019-06-30" decimals="-3" id="c49437073" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="i_2019-06-30" decimals="-3" id="c49437072" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c49437366" unitRef="iso4217-usd">367000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c49437367" unitRef="iso4217-usd">462000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c49437368" unitRef="iso4217-usd">22555000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-06-30" decimals="-3" id="c49437369" unitRef="iso4217-usd">23384000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="i_2019-06-30" decimals="-3" id="c49437077" unitRef="iso4217-usd">21603000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <us-gaap:GainLossOnDispositionOfAssets contextRef="d_2019-01-01_2019-06-30" id="c49436796" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GainLossOnDispositionOfAssets contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436797" unitRef="iso4217-usd">55000</us-gaap:GainLossOnDispositionOfAssets>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436560" unitRef="iso4217-usd">0</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436561" unitRef="iso4217-usd">15000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2019-01-01_2019-06-30" id="c49436562" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436563" unitRef="iso4217-usd">55000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <us-gaap:GainLossRelatedToLitigationSettlement contextRef="d_2019-04-01_2019-06-30" id="c49436556" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GainLossRelatedToLitigationSettlement contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436557" unitRef="iso4217-usd">104000</us-gaap:GainLossRelatedToLitigationSettlement>
  <us-gaap:GainLossRelatedToLitigationSettlement contextRef="d_2019-01-01_2019-06-30" id="c49436558" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GainLossRelatedToLitigationSettlement contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436559" unitRef="iso4217-usd">104000</us-gaap:GainLossRelatedToLitigationSettlement>
  <us-gaap:Goodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c49437099" unitRef="iso4217-usd">44516000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-06-30" decimals="-3" id="c49436480" unitRef="iso4217-usd">51838000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2018-12-31" decimals="-3" id="c49436481" unitRef="iso4217-usd">51838000</us-gaap:Goodwill>
  <us-gaap:GrossProfit contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436544" unitRef="iso4217-usd">14371000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436545" unitRef="iso4217-usd">12986000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436546" unitRef="iso4217-usd">26867000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436547" unitRef="iso4217-usd">23170000</us-gaap:GrossProfit>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436580" unitRef="iso4217-usd">6180000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436581" unitRef="iso4217-usd">5275000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436582" unitRef="iso4217-usd">10962000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436583" unitRef="iso4217-usd">7640000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeTaxDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272838">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Income Taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" font-size: 10pt; margin: 0; text-indent: 0in"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;The income tax expense included in the accompanying unaudited condensed consolidated statements of income principally relates to the Company&amp;#x2019;s proportionate share of the pre-tax income of its wholly-owned subsidiaries. The determination of income tax expense for interim reporting purposes is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. &lt;div style="display: inline; color: windowtext"&gt;The Company recorded tax expense of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25.6%&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.4%&lt;/div&gt; of income before income tax expense for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; respectively. The Company recorded tax expense of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.0%&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.5%&lt;/div&gt; of income before income tax expense, for each of the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; respectively. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436584" unitRef="iso4217-usd">1582000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436585" unitRef="iso4217-usd">1285000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436586" unitRef="iso4217-usd">2630000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436587" unitRef="iso4217-usd">1873000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436891" unitRef="iso4217-usd">382000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436892" unitRef="iso4217-usd">784000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesReceivable contextRef="i_2019-06-30" decimals="-3" id="c49436470" unitRef="iso4217-usd">717000</us-gaap:IncomeTaxesReceivable>
  <us-gaap:IncomeTaxesReceivable contextRef="i_2018-12-31" decimals="-3" id="c49436471" unitRef="iso4217-usd">2285000</us-gaap:IncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436812" unitRef="iso4217-usd">-1222000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436813" unitRef="iso4217-usd">2907000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2018-01-01_2018-06-30_RestatementAxis-RestatementAdjustmentMember" decimals="-3" id="c49437350" unitRef="iso4217-usd">-573000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436814" unitRef="iso4217-usd">30000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436815" unitRef="iso4217-usd">-1005000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2018-01-01_2018-06-30_RestatementAxis-RestatementAdjustmentMember" decimals="-3" id="c49437161" unitRef="iso4217-usd">-573000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436816" unitRef="iso4217-usd">444000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436817" unitRef="iso4217-usd">286000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436808" unitRef="iso4217-usd">-1568000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436809" unitRef="iso4217-usd">-401000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436804" unitRef="iso4217-usd">-538000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436805" unitRef="iso4217-usd">1451000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436810" unitRef="iso4217-usd">178000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436811" unitRef="iso4217-usd">248000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436818" unitRef="iso4217-usd">-316000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436819" unitRef="iso4217-usd">155000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436806" unitRef="iso4217-usd">61000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436807" unitRef="iso4217-usd">149000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncreaseDecreaseInReceivables contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436802" unitRef="iso4217-usd">2360000</us-gaap:IncreaseDecreaseInReceivables>
  <us-gaap:IncreaseDecreaseInReceivables contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436803" unitRef="iso4217-usd">4414000</us-gaap:IncreaseDecreaseInReceivables>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436995" unitRef="xbrli-shares">44000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436996" unitRef="xbrli-shares">66000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436997" unitRef="xbrli-shares">60000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436998" unitRef="xbrli-shares">72000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272835">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Other Intangible Assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=""&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0; text-indent: 0in"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0; text-indent: 0in"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;The carrying values of the Company&amp;#x2019;s definite lived intangible assets as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;are as follows (in&amp;nbsp;thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0 0 0 27.35pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 14; Value: 3 --&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Tradename &lt;br /&gt; &amp;amp; Brand&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Non-&lt;br /&gt; Compete&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Customer&lt;br /&gt; List&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;Estimated useful life&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Gross amount&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,384&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Accumulated amortization&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(52&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(131&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,598&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,781&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Net balance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;315&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;331&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,957&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,603&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;Amortization expense related to intangible assets was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$314&lt;/div&gt;&lt;/div&gt; thousand for both the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$628&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$524&lt;/div&gt; thousand for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; respectively. The estimated remaining amortization expense as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;is as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 0.75in; font-size: 10pt; text-indent: -0.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 40pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Remainder of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 77%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 20%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;628&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,172&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Thereafter&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,032&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Total&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,603&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c49437374" unitRef="iso4217-usd">315000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c49437375" unitRef="iso4217-usd">331000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c49437376" unitRef="iso4217-usd">20957000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-06-30" decimals="-3" id="c49437377" unitRef="iso4217-usd">21603000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2018-12-31" decimals="-3" id="c49436483" unitRef="iso4217-usd">22232000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:InterestExpense contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436572" unitRef="iso4217-usd">194000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436573" unitRef="iso4217-usd">404000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436574" unitRef="iso4217-usd">425000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436575" unitRef="iso4217-usd">677000</us-gaap:InterestExpense>
  <us-gaap:InterestPaidNet contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436889" unitRef="iso4217-usd">268000</us-gaap:InterestPaidNet>
  <us-gaap:InterestPaidNet contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436890" unitRef="iso4217-usd">668000</us-gaap:InterestPaidNet>
  <us-gaap:InventoryDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272825">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Inventories&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Inventories are stated at the lower of cost (determined using the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-in, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-out method) or net realizable value, and consist of the following at the stated dates (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 11; Value: 3 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;br /&gt; 2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31, &lt;br /&gt; 2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left"&gt;Raw materials&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,168&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,727&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Work in process&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,837&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,521&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Finished goods&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6,033&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,328&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Total inventory&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,038&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,576&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="i_2019-06-30" decimals="-3" id="c49436960" unitRef="iso4217-usd">6033000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="i_2018-12-31" decimals="-3" id="c49436961" unitRef="iso4217-usd">5328000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <us-gaap:InventoryNet contextRef="i_2019-06-30" decimals="-3" id="c49436962" unitRef="iso4217-usd">19038000</us-gaap:InventoryNet>
  <us-gaap:InventoryNet contextRef="i_2018-12-31" decimals="-3" id="c49436963" unitRef="iso4217-usd">19576000</us-gaap:InventoryNet>
  <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="i_2019-06-30" decimals="-3" id="c49436956" unitRef="iso4217-usd">10168000</us-gaap:InventoryRawMaterialsNetOfReserves>
  <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="i_2018-12-31" decimals="-3" id="c49436957" unitRef="iso4217-usd">11727000</us-gaap:InventoryRawMaterialsNetOfReserves>
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="i_2019-06-30" decimals="-3" id="c49436958" unitRef="iso4217-usd">2837000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="i_2018-12-31" decimals="-3" id="c49436959" unitRef="iso4217-usd">2521000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436568" unitRef="iso4217-usd">0</us-gaap:InvestmentIncomeInterest>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436569" unitRef="iso4217-usd">7000</us-gaap:InvestmentIncomeInterest>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2019-01-01_2019-06-30" id="c49436570" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436571" unitRef="iso4217-usd">32000</us-gaap:InvestmentIncomeInterest>
  <us-gaap:LeaseCost contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436967" unitRef="iso4217-usd">737000</us-gaap:LeaseCost>
  <us-gaap:LeaseCostTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-11">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;June 30, 2019&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;($ in thousands)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Lease Cost:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 87%; font-size: 10pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;613&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Variable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;111&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt"&gt;Short-term&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Total lease cost&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;737&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Cash paid for amounts included in measurement of&amp;nbsp;&amp;nbsp;lease liabilities:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;604&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average remaining lease term (years):&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3.15&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average discount rate:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.45&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
  <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-12">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="5" style="font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of June 30, 2019 were as follows (in thousands):&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Remainder of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;593&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,143&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,121&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;957&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;35&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Thereafter&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total lease payments&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,849&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Less: Interest&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(267&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Present value of lease liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,582&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="i_2019-06-30" decimals="-3" id="c49436981" unitRef="iso4217-usd">3849000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="i_2019-06-30" id="c49436980" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="i_2019-06-30" decimals="-3" id="c49436979" unitRef="iso4217-usd">35000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="i_2019-06-30" decimals="-3" id="c49436978" unitRef="iso4217-usd">957000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="i_2019-06-30" decimals="-3" id="c49436977" unitRef="iso4217-usd">1121000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="i_2019-06-30" decimals="-3" id="c49436976" unitRef="iso4217-usd">1143000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear contextRef="i_2019-06-30" decimals="-3" id="c49436975" unitRef="iso4217-usd">593000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="i_2019-06-30" decimals="-3" id="c49436982" unitRef="iso4217-usd">267000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="i_2018-02-01_LeaseArrangementTypeAxis-DielectricsMember" id="c49437323">P5Y</us-gaap:LesseeOperatingLeaseTermOfContract>
  <us-gaap:LesseeOperatingLeasesTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272827">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Leases&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The Company adopted ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; - &lt;div style="display: inline; font-style: italic;"&gt;Leases&lt;/div&gt; (&amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&amp;#x201d;&lt;/div&gt;) as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019, &lt;/div&gt;using the transition method wherein entities could initially apply the new leases standard at adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption. Accordingly, all periods prior to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019 &lt;/div&gt;were presented in accordance with the previous ASC Topic &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;840,&lt;/div&gt; Leases, and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt; retrospective adjustments were made to the comparative periods presented.&amp;nbsp;The adoption of ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; resulted in an increase to total assets due to the recording of operating lease right-of-use ("ROU") assets and operating lease liabilities of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$4.0&lt;/div&gt;&amp;nbsp;million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$4.1&lt;/div&gt; million, respectively, as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019.&amp;nbsp; &lt;/div&gt;The Company did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; have any finance leases at the adoption date. The adoption did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; materially impact the Company&amp;#x2019;s condensed consolidated statements of income or cash flows.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The Company has operating leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12&lt;/div&gt; months or less are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; recorded on the balance sheet. The Company has elected the practical expedient to account for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. The Company also elected the package of practical expedients permitted within the new standard, which among other things, allows the Company to carry forward historical lease classification. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; included in the ROU assets or operating lease liabilities.&amp;nbsp;These are expensed as incurred and recorded as variable lease expense.&amp;nbsp;The Company determines if an arrangement is a lease at the inception of a contract. Operating lease ROU assets and operating lease liabilities are stated separately in the condensed consolidated balance sheet.&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;ROU assets represent the Company's right to use an underlying asset during the lease term and operating lease liabilities represent the Company's obligation to make lease payments arising from the lease.&amp;nbsp;ROU assets and operating lease liabilities are&amp;nbsp;recognized at commencement date based on the net present value of fixed lease payments over the lease term.&amp;nbsp;The Company's lease term&amp;nbsp;includes&amp;nbsp;options to extend or terminate the lease when it is reasonably certain that we will exercise that option.&amp;nbsp;ROU assets will also be adjusted for any deferred or accrued rent. As the Company's&amp;nbsp;operating leases do &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; typically provide an implicit rate,&amp;nbsp;the Company uses&amp;nbsp;its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&amp;nbsp;Operating fixed lease expense is recognized on a straight-line basis over the lease term.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;June 30, 2019&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;($ in thousands)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Lease Cost:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 87%; font-size: 10pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;613&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Variable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;111&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt"&gt;Short-term&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Total lease cost&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;737&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Cash paid for amounts included in measurement of&amp;nbsp;&amp;nbsp;lease liabilities:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;604&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average remaining lease term (years):&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3.15&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average discount rate:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.45&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="5" style="font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of June 30, 2019 were as follows (in thousands):&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Remainder of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;593&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,143&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,121&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;957&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;35&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Thereafter&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total lease payments&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,849&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Less: Interest&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(267&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Present value of lease liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,582&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="5" style="font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of December 31, 2018 were as follows (in thousands):&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,051&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,070&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,063&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;975&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,195&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
  <us-gaap:LettersOfCreditOutstandingAmount contextRef="i_2019-06-30_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c49437297" unitRef="iso4217-usd">700000</us-gaap:LettersOfCreditOutstandingAmount>
  <us-gaap:Liabilities contextRef="i_2019-06-30" decimals="-3" id="c49436514" unitRef="iso4217-usd">45311000</us-gaap:Liabilities>
  <us-gaap:Liabilities contextRef="i_2018-12-31" decimals="-3" id="c49436515" unitRef="iso4217-usd">49141000</us-gaap:Liabilities>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2019-06-30" decimals="-3" id="c49436528" unitRef="iso4217-usd">194965000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2018-12-31" decimals="-3" id="c49436529" unitRef="iso4217-usd">189598000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436502" unitRef="iso4217-usd">20905000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LiabilitiesCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436503" unitRef="iso4217-usd">20658000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity contextRef="i_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_DebtInstrumentAxis-UnsecuredRevolvingCreditFacilityMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c49437293" unitRef="iso4217-usd">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <us-gaap:LongTermDebt contextRef="i_2019-06-30_CreditFacilityAxis-RevolvingCreditFacilityMember" decimals="-3" id="c49437078" unitRef="iso4217-usd">1000000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2018-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember" decimals="-3" id="c49437079" unitRef="iso4217-usd">8000000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2019-06-30_DebtInstrumentAxis-TermLoanMember" decimals="-3" id="c49437080" unitRef="iso4217-usd">16428000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2018-12-31_DebtInstrumentAxis-TermLoanMember" decimals="-3" id="c49437081" unitRef="iso4217-usd">17143000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2019-06-30" decimals="-3" id="c49437082" unitRef="iso4217-usd">17428000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2018-12-31" decimals="-3" id="c49437083" unitRef="iso4217-usd">25143000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebtCurrent contextRef="i_2019-06-30" decimals="-3" id="c49437084" unitRef="iso4217-usd">3571000</us-gaap:LongTermDebtCurrent>
  <us-gaap:LongTermDebtCurrent contextRef="i_2018-12-31" decimals="-3" id="c49437085" unitRef="iso4217-usd">2857000</us-gaap:LongTermDebtCurrent>
  <us-gaap:LongTermDebtNoncurrent contextRef="i_2019-06-30" decimals="-3" id="c49437086" unitRef="iso4217-usd">13857000</us-gaap:LongTermDebtNoncurrent>
  <us-gaap:LongTermDebtNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c49437087" unitRef="iso4217-usd">22286000</us-gaap:LongTermDebtNoncurrent>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436842" unitRef="iso4217-usd">-7546000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436843" unitRef="iso4217-usd">40391000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436828" unitRef="iso4217-usd">-2819000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436829" unitRef="iso4217-usd">-79901000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436820" unitRef="iso4217-usd">12358000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436821" unitRef="iso4217-usd">7447000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436792" unitRef="iso4217-usd">8332000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436793" unitRef="iso4217-usd">5767000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436588" unitRef="iso4217-usd">4598000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436589" unitRef="iso4217-usd">3990000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436641" unitRef="iso4217-usd">3734000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c49436644" unitRef="iso4217-usd">3734000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436674" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436675" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436676" unitRef="iso4217-usd">4598000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436678" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436730" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436731" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436732" unitRef="iso4217-usd">1777000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436734" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c49436735" unitRef="iso4217-usd">1777000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436779" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c49436780" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436781" unitRef="iso4217-usd">3990000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436783" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="d_2019-01-01_2019-06-30" id="c49437359">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Recent Accounting Pronouncements&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; background-color: white"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 2016, &lt;/div&gt;the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU)&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt;&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;02,&lt;/div&gt;&amp;nbsp;&amp;#x201c;&lt;div style="display: inline; font-style: italic;"&gt;Leases (Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt;),&lt;/div&gt;&amp;#x201d; and issued subsequent amendments to the initial guidance in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2018 &lt;/div&gt;within ASU&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt;&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;01&lt;/div&gt;&amp;nbsp;and in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; July 2018 &lt;/div&gt;within ASU Nos.&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt;&amp;nbsp;and&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.&lt;/div&gt; &lt;/div&gt;The Company adopted ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019. &lt;/div&gt;See Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt; for further details.&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; background-color: white"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2017, &lt;/div&gt;the FASB issued ASU&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt;&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;04,&lt;/div&gt;&amp;nbsp;&lt;div style="display: inline; font-style: italic;"&gt;Intangibles&amp;#x2014;Goodwill and Other (ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;350&lt;/div&gt;), Simplifying the Test for Goodwill Impairment&lt;/div&gt;. The guidance removes Step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt; of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&amp;#x2019;s carrying value exceeds its fair value, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019.&lt;/div&gt; Early adoption is permitted for any impairment tests performed on testing dates after &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017.&lt;/div&gt; The Company does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; believe adoption will have a material impact on its financial condition or results of operations.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
  <us-gaap:NumberOfOperatingSegments contextRef="d_2018-01-01_2018-06-30" decimals="INF" id="c49437354" unitRef="xbrli-pure">1</us-gaap:NumberOfOperatingSegments>
  <us-gaap:NumberOfReportableSegments contextRef="d_2019-01-01_2019-06-30" decimals="INF" id="c49437353" unitRef="xbrli-pure">1</us-gaap:NumberOfReportableSegments>
  <us-gaap:OperatingIncomeLoss contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436564" unitRef="iso4217-usd">6572000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436565" unitRef="iso4217-usd">5669000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436566" unitRef="iso4217-usd">11824000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436567" unitRef="iso4217-usd">8232000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingLeaseCost contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436964" unitRef="iso4217-usd">613000</us-gaap:OperatingLeaseCost>
  <us-gaap:OperatingLeaseLiability contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" decimals="-3" id="c49437240" unitRef="iso4217-usd">4100000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiability contextRef="i_2019-06-30" decimals="-3" id="c49436983" unitRef="iso4217-usd">3582000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436498" unitRef="iso4217-usd">984000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436499" unitRef="iso4217-usd">0</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2019-06-30" decimals="-3" id="c49436510" unitRef="iso4217-usd">2598000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c49436511" unitRef="iso4217-usd">0</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeasePayments contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436968" unitRef="iso4217-usd">604000</us-gaap:OperatingLeasePayments>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" decimals="-3" id="c49437239" unitRef="iso4217-usd">4000000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2019-06-30" decimals="-3" id="c49436486" unitRef="iso4217-usd">3531000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2018-12-31" decimals="-3" id="c49436487" unitRef="iso4217-usd">0</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="i_2019-06-30" decimals="4" id="c49436970" unitRef="xbrli-pure">0.0445</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2019-06-30" id="c49436969">P3Y54D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDue contextRef="i_2018-12-31" decimals="-3" id="c49436990" unitRef="iso4217-usd">4195000</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436985" unitRef="iso4217-usd">1051000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears contextRef="i_2018-12-31" decimals="-3" id="c49436989" unitRef="iso4217-usd">36000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears contextRef="i_2018-12-31" decimals="-3" id="c49436988" unitRef="iso4217-usd">975000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears contextRef="i_2018-12-31" decimals="-3" id="c49436987" unitRef="iso4217-usd">1063000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears contextRef="i_2018-12-31" decimals="-3" id="c49436986" unitRef="iso4217-usd">1070000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
  <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272811">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Basis of Presentation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The interim condensed consolidated financial statements of UFP Technologies,&amp;nbsp;Inc. (the &amp;#x201c;Company&amp;#x201d;) presented herein, have been prepared pursuant to the rules&amp;nbsp;of the Securities and Exchange Commission for quarterly reports on Form&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt;-Q and do &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;included in the Company's &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; Annual Report on Form&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt;-K, as filed with the Securities and Exchange Commission.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The condensed consolidated balance sheets as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;the condensed consolidated statements of income for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the condensed consolidated statements of stockholders&amp;#x2019; equity for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; and the condensed consolidated statements of cash flows for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;has been derived from the Company&amp;#x2019;s annual financial statements that were audited by an independent registered public accounting firm but does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; include all of the information and footnotes required for complete annual financial statements.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;The results of operations for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; necessarily indicative of the results to be expected for the entire fiscal year ending &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019.&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;Recent Accounting Pronouncements&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; background-color: white"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;In &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 2016, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU)&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2016&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;02,&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&amp;#x201c;&lt;/div&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;Leases (Accounting Standards Codification (ASC) &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;),&lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;#x201d; and issued subsequent amendments to the initial guidance in &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2018 &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;within ASU&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;01&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;and in &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; July 2018 &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;within ASU Nos.&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;and&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; &lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;The Company adopted ASC &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; on &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019. &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;See Note &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; for further details.&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; background-color: white"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;In &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2017, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;the FASB issued ASU&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;04,&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;Intangibles&amp;#x2014;Goodwill and Other (ASC &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;350&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;), Simplifying the Test for Goodwill Impairment&lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;. The guidance removes Step &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&amp;#x2019;s carrying value exceeds its fair value, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15,&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019.&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; Early adoption is permitted for any impairment tests performed on testing dates after &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017.&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; The Company does &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; believe adoption will have a material impact on its financial condition or results of operations.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;Revisions&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;Certain revisions have been made to the Condensed Consolidated Statements of Cash Flows for the &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; months ended &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2018, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;due to a reclassification of deferred &lt;/div&gt;&lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;revenue. The reclassification resulted in a decrease to the change in deferred revenue and a decrease in the change in accrued expenses in the amount of approximately &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$573&lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; thousand. These revisions had &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; impact on previously reported net income and are deemed immaterial to the previously issued financial statements.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2019-06-30" decimals="-3" id="c49436488" unitRef="iso4217-usd">140000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c49436489" unitRef="iso4217-usd">201000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="i_2019-06-30" decimals="-3" id="c49436512" unitRef="iso4217-usd">390000</us-gaap:OtherLiabilitiesNoncurrent>
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c49436513" unitRef="iso4217-usd">24000</us-gaap:OtherLiabilitiesNoncurrent>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436576" unitRef="iso4217-usd">-198000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436577" unitRef="iso4217-usd">3000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436578" unitRef="iso4217-usd">-437000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436579" unitRef="iso4217-usd">53000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436840" unitRef="iso4217-usd">271000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436841" unitRef="iso4217-usd">144000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsToAcquireBusinessesGross contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-4" id="c49437319" unitRef="iso4217-usd">80000000</us-gaap:PaymentsToAcquireBusinessesGross>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-01-01_2019-06-30" id="c49436824" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436825" unitRef="iso4217-usd">76978000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436822" unitRef="iso4217-usd">2819000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436823" unitRef="iso4217-usd">2991000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PreferredStockParOrStatedValuePerShare contextRef="i_2019-06-30" decimals="INF" id="c49437332" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
  <us-gaap:PreferredStockParOrStatedValuePerShare contextRef="i_2018-12-31" decimals="INF" id="c49437333" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
  <us-gaap:PreferredStockSharesAuthorized contextRef="i_2019-06-30" decimals="INF" id="c49437334" unitRef="xbrli-shares">1000000</us-gaap:PreferredStockSharesAuthorized>
  <us-gaap:PreferredStockSharesAuthorized contextRef="i_2018-12-31" decimals="INF" id="c49437335" unitRef="xbrli-shares">1000000</us-gaap:PreferredStockSharesAuthorized>
  <us-gaap:PreferredStockSharesIssued contextRef="i_2019-06-30" decimals="INF" id="c49437336" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesIssued>
  <us-gaap:PreferredStockSharesIssued contextRef="i_2018-12-31" decimals="INF" id="c49437337" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesIssued>
  <us-gaap:PreferredStockSharesOutstanding contextRef="i_2019-06-30" decimals="INF" id="c49437338" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesOutstanding>
  <us-gaap:PreferredStockSharesOutstanding contextRef="i_2018-12-31" decimals="INF" id="c49437339" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesOutstanding>
  <us-gaap:PreferredStockValue contextRef="i_2019-06-30" decimals="-3" id="c49436516" unitRef="iso4217-usd">0</us-gaap:PreferredStockValue>
  <us-gaap:PreferredStockValue contextRef="i_2018-12-31" decimals="-3" id="c49436517" unitRef="iso4217-usd">0</us-gaap:PreferredStockValue>
  <us-gaap:PrepaidExpenseCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436468" unitRef="iso4217-usd">2267000</us-gaap:PrepaidExpenseCurrent>
  <us-gaap:PrepaidExpenseCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436469" unitRef="iso4217-usd">2206000</us-gaap:PrepaidExpenseCurrent>
  <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="d_2019-01-01_2019-06-30" id="c49436834" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436835" unitRef="iso4217-usd">20000000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
  <us-gaap:ProceedsFromLongTermLinesOfCredit contextRef="d_2019-01-01_2019-06-30" id="c49436830" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromLongTermLinesOfCredit contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436831" unitRef="iso4217-usd">36000000</us-gaap:ProceedsFromLongTermLinesOfCredit>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2019-01-01_2019-06-30" id="c49436826" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436827" unitRef="iso4217-usd">68000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49437213" unitRef="iso4217-usd">440000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49437214" unitRef="iso4217-usd">965000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-06-30" decimals="-3" id="c49436474" unitRef="iso4217-usd">113866000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31" decimals="-3" id="c49436475" unitRef="iso4217-usd">111779000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2019-06-30" decimals="-3" id="c49436478" unitRef="iso4217-usd">57346000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2018-12-31" decimals="-3" id="c49436479" unitRef="iso4217-usd">57667000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:ReceivablesNetCurrent contextRef="i_2019-06-30" decimals="-3" id="c49436464" unitRef="iso4217-usd">30681000</us-gaap:ReceivablesNetCurrent>
  <us-gaap:ReceivablesNetCurrent contextRef="i_2018-12-31" decimals="-3" id="c49436465" unitRef="iso4217-usd">28321000</us-gaap:ReceivablesNetCurrent>
  <us-gaap:RepaymentsOfLongTermDebt contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436836" unitRef="iso4217-usd">715000</us-gaap:RepaymentsOfLongTermDebt>
  <us-gaap:RepaymentsOfLongTermDebt contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436837" unitRef="iso4217-usd">1429000</us-gaap:RepaymentsOfLongTermDebt>
  <us-gaap:RepaymentsOfLongTermLinesOfCredit contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436832" unitRef="iso4217-usd">7000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
  <us-gaap:RepaymentsOfLongTermLinesOfCredit contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436833" unitRef="iso4217-usd">15000000</us-gaap:RepaymentsOfLongTermLinesOfCredit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2019-06-30" decimals="-3" id="c49436522" unitRef="iso4217-usd">120134000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2018-12-31" decimals="-3" id="c49436523" unitRef="iso4217-usd">111802000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436536" unitRef="iso4217-usd">51399000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436537" unitRef="iso4217-usd">49019000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436538" unitRef="iso4217-usd">98726000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436539" unitRef="iso4217-usd">91949000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_ProductOrServiceAxis-ProductMember" decimals="-3" id="c49436855" unitRef="iso4217-usd">50576000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_ProductOrServiceAxis-ProductMember" decimals="-3" id="c49436856" unitRef="iso4217-usd">47102000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_ProductOrServiceAxis-ProductMember" decimals="-3" id="c49436857" unitRef="iso4217-usd">96984000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_ProductOrServiceAxis-ProductMember" decimals="-3" id="c49436858" unitRef="iso4217-usd">89246000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c49436859" unitRef="iso4217-usd">323000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c49436860" unitRef="iso4217-usd">1107000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c49436861" unitRef="iso4217-usd">969000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c49436862" unitRef="iso4217-usd">1598000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c49436863" unitRef="iso4217-usd">500000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c49436864" unitRef="iso4217-usd">810000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c49436865" unitRef="iso4217-usd">773000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c49436866" unitRef="iso4217-usd">1105000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-MedicalMember" decimals="-3" id="c49437003" unitRef="iso4217-usd">33045000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-MedicalMember" decimals="-3" id="c49437005" unitRef="iso4217-usd">29227000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-MedicalMember" decimals="-3" id="c49437007" unitRef="iso4217-usd">61989000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-MedicalMember" decimals="-3" id="c49437009" unitRef="iso4217-usd">53365000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c49437011" unitRef="iso4217-usd">4950000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c49437013" unitRef="iso4217-usd">5065000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c49437015" unitRef="iso4217-usd">10688000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c49437017" unitRef="iso4217-usd">10421000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c49437019" unitRef="iso4217-usd">4667000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c49437021" unitRef="iso4217-usd">5777000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c49437023" unitRef="iso4217-usd">9092000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c49437025" unitRef="iso4217-usd">11237000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c49437027" unitRef="iso4217-usd">4115000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c49437029" unitRef="iso4217-usd">3080000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c49437031" unitRef="iso4217-usd">7646000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c49437033" unitRef="iso4217-usd">5567000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c49437035" unitRef="iso4217-usd">2326000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c49437037" unitRef="iso4217-usd">2902000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c49437039" unitRef="iso4217-usd">4811000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c49437041" unitRef="iso4217-usd">5519000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c49437043" unitRef="iso4217-usd">2296000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c49437045" unitRef="iso4217-usd">2968000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-06-30_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c49437047" unitRef="iso4217-usd">4500000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-06-30_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c49437049" unitRef="iso4217-usd">5840000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272812">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 0; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Revenue Recognition&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"&gt;The Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;606&lt;/div&gt; which include (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;) identifying the contract with a customer, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;) identifying separate performance obligations within the contract, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;) determining the transaction price, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4&lt;/div&gt;) allocating the transaction price to the performance obligations, and (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery primarily upon customer acceptance, except for certain tooling where control does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; transfer to the customer, which results in revenue being recognized over the estimated time for which parts are produced with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&amp;#x2019;s promise to transfer the good and are expensed when revenue is recognized.&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Disaggregated Revenue&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;The following table presents the Company&amp;#x2019;s revenue disaggregated by the major types of goods and services sold to the Company&amp;#x2019;s customers (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid"&gt;Net sales of:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Products&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50,576&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47,102&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;96,984&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;89,246&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Tooling and Machinery&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;323&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,107&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;969&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,598&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Engineering services&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;500&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;810&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;773&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,105&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Total net sales&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;51,399&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;98,726&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;91,949&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Contract balances&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;Timing of revenue recognition &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has deferred revenue, or contract liabilities, included within &amp;#x201c;deferred revenue&amp;#x201d; on the condensed consolidated balance sheet.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;The following table presents opening and closing balances of contract liabilities for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;30,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Liabilities&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Six Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt"&gt;Deferred revenue - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,507&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;871&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Acquired in Dielectrics business combination&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,175&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increases due to consideration received from customers&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,541&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,855&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Revenue recognized&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,097&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,570&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Deferred revenue - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,951&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,331&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt; color: windowtext"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;Revenue recognized during the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; from amounts included in deferred revenue at the beginning of the period were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$613&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$437&lt;/div&gt; thousand, respectively.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 8; Value: 3 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;When invoicing occurs after revenue recognition, the Company has unbilled receivables (contract assets) included within &amp;#x201c;receivables&amp;#x201d; on the condensed consolidated balance sheet.&lt;/div&gt; &lt;div style=" margin: 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;The following table presents opening and closing balances of contract assets for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;30,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; (in thousands):&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Assets&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Six Months Ended&lt;br /&gt; June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt"&gt;Unbilled Receivables - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Decreases due to customer invoicing&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(314&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Increases due to revenue recognized - not invoiced to customers&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;280&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;236&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Unbilled Receivables - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;236&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt;  &lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
  <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-4">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-style: italic; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-style: italic; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; text-align: center"&gt;(in thousands)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Cash paid for:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Interest&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;268&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;668&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Income taxes, net of refunds&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;382&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;784&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Non-cash investing and financing activities:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Capital additions accrued but not yet paid&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;281&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;331&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 20pt"&gt;Recognition of lease asset and liability (ASC 842)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,831&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
  <us-gaap:ScheduleOfDebtInstrumentsTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-18">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30, &lt;br /&gt; 2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;br /&gt; 2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left"&gt;Revolving credit facility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Term loan&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,428&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,143&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total long-term debt&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,428&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25,143&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,571&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,857&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Long-term debt, excluding current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,857&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,286&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDebtInstrumentsTextBlock>
  <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-16">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Tradename &lt;br /&gt; &amp;amp; Brand&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Non-&lt;br /&gt; Compete&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Customer&lt;br /&gt; List&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;Estimated useful life&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Gross amount&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,384&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Accumulated amortization&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(52&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(131&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,598&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,781&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Net balance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;315&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;331&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,957&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,603&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
  <us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-13">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="5" style="font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of December 31, 2018 were as follows (in thousands):&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,051&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,070&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,063&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;975&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,195&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock>
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-10">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;br /&gt; 2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31, &lt;br /&gt; 2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; font-size: 10pt; text-align: left"&gt;Raw materials&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,168&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,727&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Work in process&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,837&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,521&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Finished goods&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6,033&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,328&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Total inventory&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,038&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,576&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-19">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 47pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;Consideration Paid:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Cash paid at closing&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;80,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Working capital adjustment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;250&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Cash from Dielectrics&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,272&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total consideration&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;Purchase Price Allocation:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Accounts receivable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,384&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Inventory&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,418&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Other current assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;122&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Property, plant and equipment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,600&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Customer list&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-left: 10pt"&gt;Non-compete&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Trade name and brand&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt"&gt;Goodwill&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;44,516&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total identifiable assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;81,424&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Accounts payable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,325&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Accrued expenses&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(946&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Deferred revenue&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,175&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Net Assets acquired&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock>
  <us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-15">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Six Months Ended June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Market&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 20%; font-size: 10pt"&gt;Medical&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33,045&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;64.3&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29,227&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;59.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;61,989&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;62.8&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;53,365&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;58.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;Automotive&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,950&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,065&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,688&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,421&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Consumer&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,667&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,777&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9,092&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,237&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Aerospace &amp;amp; Defense&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,115&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8.0&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,080&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,646&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,567&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Industrial&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,326&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,902&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.9&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,811&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.9&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,519&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;Electronics&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,296&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,968&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,500&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.6&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,840&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.4&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;51,399&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;98,726&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;91,949&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-9">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="2" style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Restricted &lt;br /&gt; Stock Units&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Weighted Average&lt;br /&gt; Award Date&lt;br /&gt; Fair Value&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 73%; font-size: 10pt; text-align: left"&gt;Outstanding at December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72,176&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.60&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Awarded&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;67,152&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33.50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Shares vested&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(19,860&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.53&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Outstanding at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;119,468&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.64&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-7">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Shares Under&lt;br /&gt; Options&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted &lt;br /&gt; Average &lt;br /&gt; Exercise Price &lt;br /&gt; &lt;/div&gt;&lt;div style="display: inline; font-size: 10pt; font-style: normal"&gt;(per share)&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted &lt;br /&gt; Average &lt;br /&gt; Remaining&lt;br /&gt; Contractual &lt;br /&gt; Life &lt;br /&gt; &lt;/div&gt;&lt;div style="display: inline; font-size: 10pt; font-style: normal"&gt;(in years)&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate &lt;br /&gt; Intrinsic &lt;br /&gt; Value &lt;div style="display: inline; font-size: 10pt; font-style: normal"&gt;&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-size: 10pt"&gt;(in thousands)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Outstanding at December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;134,043&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20.46&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-decoration: line-through"&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"&gt;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-decoration: line-through; text-align: right"&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Granted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Exercised&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(31,058&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14.18&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Outstanding at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;119,521&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.61&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.68&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,032&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Exercisable at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;95,485&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21.86&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.12&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,886&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt"&gt;Vested and expected to vest at June 30, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;119,521&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24.61&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.68&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,032&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
  <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-8">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="; border-collapse: collapse; font-size: 10pt; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%"&gt;Expected volatility&lt;/td&gt; &lt;td style="text-align: left; width: 30%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.9%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Expected dividends&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Risk-free interest rate&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.3%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Exercise price&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$38.61&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Expected term&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0 years&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Weighted-average grant date fair value&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$12.70&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
  <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-14">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Six Months Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Basic weighted average common shares outstanding&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,423&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,347&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,413&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,336&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt; text-indent: -10pt"&gt;Weighted average common equivalent shares due to stock, stock options and RSUs&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;44&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;66&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;60&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;Diluted weighted average common shares outstanding&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,467&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,413&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,473&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,408&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
  <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="d_2019-01-01_2019-06-30" id="c-17">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 40pt; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Remainder of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 77%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 20%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;628&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,172&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Thereafter&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,032&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-left: 10pt"&gt;Total&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,603&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
  <us-gaap:SegmentReportingDisclosureTextBlock contextRef="d_2019-01-01_2019-06-30" id="s1272833">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Segment Reporting&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" font-size: 10pt; margin: 0 0 0 27pt; text-indent: 0in"&gt;The Company consists of a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;single&lt;/div&gt;&lt;/div&gt; operating and reportable segment.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;Revenues from customers outside of the United States are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; material. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; customer comprised more than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10%&lt;/div&gt; of the Company&amp;#x2019;s consolidated revenues for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018.&lt;/div&gt; All of the Company&amp;#x2019;s assets are located in the United States.&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&gt;The Company&amp;#x2019;s products are primarily sold to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Net sales by market for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;- and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; are as follows (in thousands)&lt;/div&gt;:&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended June 30,&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Six Months Ended June 30,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Market&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 20%; font-size: 10pt"&gt;Medical&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33,045&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;64.3&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29,227&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;59.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;61,989&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;62.8&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;53,365&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 7%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;58.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;Automotive&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,950&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,065&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,688&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,421&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Consumer&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,667&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,777&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9,092&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,237&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Aerospace &amp;amp; Defense&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,115&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8.0&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,080&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,646&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,567&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Industrial&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,326&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,902&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.9&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,811&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.9&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,519&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;Electronics&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,296&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,968&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,500&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.6&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,840&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.4&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt"&gt;Net Sales&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;51,399&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;98,726&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.25pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;91,949&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0 0 0 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0 95.4pt 0 0.5in; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0 95.4pt 0 0.5in; font-size: 10pt"&gt;Certain amounts for the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;six&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 30, 2018 &lt;/div&gt;were reclassified between markets to conform to the current period presentation.&lt;/div&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436548" unitRef="iso4217-usd">7799000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436549" unitRef="iso4217-usd">7417000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436550" unitRef="iso4217-usd">15043000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436551" unitRef="iso4217-usd">14008000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:ShareBasedCompensation contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436798" unitRef="iso4217-usd">696000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensation contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436799" unitRef="iso4217-usd">691000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436950" unitRef="xbrli-shares">67152</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436951" unitRef="iso4217-usd-per-xbrli-shares">33.50</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="i_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436948" unitRef="xbrli-shares">72176</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="i_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436954" unitRef="xbrli-shares">119468</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436949" unitRef="iso4217-usd-per-xbrli-shares">23.60</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436955" unitRef="iso4217-usd-per-xbrli-shares">27.64</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436952" unitRef="xbrli-shares">19860</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49436953" unitRef="iso4217-usd-per-xbrli-shares">23.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice contextRef="i_2019-06-30" decimals="INF" id="c49436945" unitRef="iso4217-usd-per-xbrli-shares">38.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="d_2019-01-01_2019-06-30" decimals="3" id="c49436943" unitRef="xbrli-pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2019-01-01_2019-06-30" decimals="3" id="c49436942" unitRef="xbrli-pure">0.289</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2019-01-01_2019-06-30" decimals="3" id="c49436944" unitRef="xbrli-pure">0.023</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436934" unitRef="xbrli-shares">95485</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436935" unitRef="iso4217-usd-per-xbrli-shares">21.86</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49437211" unitRef="iso4217-usd">628000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49437212" unitRef="iso4217-usd">1000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod contextRef="d_2019-06-05_2019-06-05_TitleOfIndividualAxis-DirectorMember" decimals="INF" id="c49437207" unitRef="xbrli-shares">210000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436922" unitRef="xbrli-shares">16536</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-06-30" decimals="INF" id="c49436947" unitRef="iso4217-usd-per-xbrli-shares">12.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49436933" unitRef="iso4217-usd">2032000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436918" unitRef="xbrli-shares">134043</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436930" unitRef="xbrli-shares">119521</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436919" unitRef="iso4217-usd-per-xbrli-shares">20.46</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436931" unitRef="iso4217-usd-per-xbrli-shares">24.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436939" unitRef="iso4217-usd-per-xbrli-shares">24.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49436941" unitRef="iso4217-usd">2032000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436938" unitRef="xbrli-shares">119521</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436927" unitRef="iso4217-usd-per-xbrli-shares">14.18</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436923" unitRef="iso4217-usd-per-xbrli-shares">38.61</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <us-gaap:SharePrice contextRef="i_2019-06-05" decimals="INF" id="c49437208" unitRef="iso4217-usd-per-xbrli-shares">38.61</us-gaap:SharePrice>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2019-01-01_2019-06-30" id="c49436946">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c49436937" unitRef="iso4217-usd">1886000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c49436936">P5Y43D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c49436932">P5Y248D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c49436940">P5Y248D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharesOutstanding contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436610" unitRef="xbrli-shares">7385000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436614" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436645" unitRef="xbrli-shares">7414000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436649" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436680" unitRef="xbrli-shares">7428000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436684" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436687" unitRef="xbrli-shares">7280000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436691" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436736" unitRef="xbrli-shares">7321000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436740" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436785" unitRef="xbrli-shares">7359000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436789" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49437223" unitRef="xbrli-shares">8132</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c49437224" unitRef="xbrli-shares">5238</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436631" unitRef="xbrli-shares">-8000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436635" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436708" unitRef="xbrli-shares">-5000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436712" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:ShortTermLeaseCost contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436966" unitRef="iso4217-usd">13000</us-gaap:ShortTermLeaseCost>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436617" unitRef="xbrli-shares">20000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436694" unitRef="xbrli-shares">16000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436698" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436743" unitRef="xbrli-shares">3000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436747" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c49436926" unitRef="xbrli-shares">31058</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436624" unitRef="xbrli-shares">17000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436659" unitRef="xbrli-shares">14000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436663" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436701" unitRef="xbrli-shares">30000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436705" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436750" unitRef="xbrli-shares">35000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436754" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-02-19_2019-02-19_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember_StatementScenarioAxis-ScenarioForecastMember" decimals="-3" id="c49437218" unitRef="iso4217-usd">400000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436618" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436619" unitRef="iso4217-usd">294000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c49436623" unitRef="iso4217-usd">294000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436653" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436654" unitRef="iso4217-usd">402000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436655" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436657" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436658" unitRef="iso4217-usd">402000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436695" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436696" unitRef="iso4217-usd">237000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436697" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436699" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c49436700" unitRef="iso4217-usd">237000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436744" unitRef="iso4217-usd">1000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436745" unitRef="iso4217-usd">453000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436746" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436748" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436749" unitRef="iso4217-usd">454000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436625" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436626" unitRef="iso4217-usd">285000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c49436630" unitRef="iso4217-usd">285000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436660" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436661" unitRef="iso4217-usd">155000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436662" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436664" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436665" unitRef="iso4217-usd">155000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436702" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436703" unitRef="iso4217-usd">367000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436704" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436706" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c49436707" unitRef="iso4217-usd">367000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c49436751" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436752" unitRef="iso4217-usd">597000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" id="c49436753" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" id="c49436755" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436756" unitRef="iso4217-usd">597000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockholdersEquity contextRef="i_2019-06-30" decimals="-3" id="c49436526" unitRef="iso4217-usd">149654000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31" decimals="-3" id="c49436527" unitRef="iso4217-usd">140457000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436611" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436612" unitRef="iso4217-usd">29168000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436613" unitRef="iso4217-usd">111802000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436615" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436646" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436647" unitRef="iso4217-usd">29476000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436648" unitRef="iso4217-usd">115536000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436650" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31" decimals="-3" id="c49436651" unitRef="iso4217-usd">144499000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436681" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436682" unitRef="iso4217-usd">30033000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436683" unitRef="iso4217-usd">120134000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436685" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436688" unitRef="iso4217-usd">73000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436689" unitRef="iso4217-usd">26664000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436690" unitRef="iso4217-usd">97562000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436692" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31" decimals="-3" id="c49436693" unitRef="iso4217-usd">123712000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436737" unitRef="iso4217-usd">73000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436738" unitRef="iso4217-usd">27291000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436739" unitRef="iso4217-usd">99244000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436741" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-03-31" decimals="-3" id="c49436742" unitRef="iso4217-usd">126021000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c49436786" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c49436787" unitRef="iso4217-usd">28341000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c49436788" unitRef="iso4217-usd">103258000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c49436790" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-06-30" decimals="-3" id="c49436791" unitRef="iso4217-usd">131086000</us-gaap:StockholdersEquity>
  <us-gaap:TreasuryStockShares contextRef="i_2019-06-30" decimals="INF" id="c49437348" unitRef="xbrli-shares">29559</us-gaap:TreasuryStockShares>
  <us-gaap:TreasuryStockShares contextRef="i_2018-12-31" decimals="INF" id="c49437349" unitRef="xbrli-shares">29559</us-gaap:TreasuryStockShares>
  <us-gaap:TreasuryStockValue contextRef="i_2019-06-30" decimals="-3" id="c49436524" unitRef="iso4217-usd">587000</us-gaap:TreasuryStockValue>
  <us-gaap:TreasuryStockValue contextRef="i_2018-12-31" decimals="-3" id="c49436525" unitRef="iso4217-usd">587000</us-gaap:TreasuryStockValue>
  <us-gaap:VariableLeaseCost contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436965" unitRef="iso4217-usd">111000</us-gaap:VariableLeaseCost>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436604" unitRef="xbrli-shares">7467000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436605" unitRef="xbrli-shares">7413000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436606" unitRef="xbrli-shares">7473000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436607" unitRef="xbrli-shares">7408000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c49436600" unitRef="xbrli-shares">7423000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c49436601" unitRef="xbrli-shares">7347000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2019-01-01_2019-06-30" decimals="-3" id="c49436602" unitRef="xbrli-shares">7413000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2018-01-01_2018-06-30" decimals="-3" id="c49436603" unitRef="xbrli-shares">7336000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <link:footnoteLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended"/>
  <xbrli:unit id="xbrli-shares">
    <xbrli:measure>xbrli:shares</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="xbrli-pure">
    <xbrli:measure>xbrli:pure</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-usd">
    <xbrli:measure>iso4217:USD</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-usd-per-xbrli-shares">
    <xbrli:divide>
      <xbrli:unitNumerator>
        <xbrli:measure>iso4217:USD</xbrli:measure>
      </xbrli:unitNumerator>
      <xbrli:unitDenominator>
        <xbrli:measure>xbrli:shares</xbrli:measure>
      </xbrli:unitDenominator>
    </xbrli:divide>
  </xbrli:unit>
  <xbrli:context id="d_2018-01-01_2018-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_AwardTypeAxis-StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_FairValueByAssetClassAxis-DeferredRevenueMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">ufpt:DeferredRevenueMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_RestatementAxis-RestatementAdjustmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-PrimeRateMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:UnsecuredRevolvingCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_AwardTypeAxis-StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_AwardTypeAxis-StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_FairValueByAssetClassAxis-DeferredRevenueMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">ufpt:DeferredRevenueMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ufpt:TradeNameAndBrandMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-06-30_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-19_2019-02-19_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember_StatementScenarioAxis-ScenarioForecastMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:The2003IncentivePlanMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ufpt:ChairmanChiefExecutiveOfficerAndPresidentMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-02-19</xbrli:startDate>
      <xbrli:endDate>2019-02-19</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_AwardTypeAxis-StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-06-05_2019-06-05_TitleOfIndividualAxis-DirectorMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-06-05</xbrli:startDate>
      <xbrli:endDate>2019-06-05</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ufpt:TradeNameAndBrandMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_DebtInstrumentAxis-UnsecuredRevolvingCreditFacilityMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:UnsecuredRevolvingCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_DebtInstrumentAxis-UnsecuredTermLoanMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:UnsecuredTermLoanMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_LeaseArrangementTypeAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:LeaseArrangementTypeAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-03-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-03-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-30_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-30_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-30_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentLiabilitiesMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_DebtInstrumentAxis-TermLoanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:TermLoanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-01">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-05">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-05</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentLiabilitiesMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_CreditFacilityAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_CreditFacilityAxis-RevolvingCreditFacilityMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_DebtInstrumentAxis-TermLoanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:TermLoanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ufpt:TradeNameAndBrandMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-30_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-08-01">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-08-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
</xbrli:xbrl>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>8
<FILENAME>ufpt-20190630.xsd
<DESCRIPTION>XBRL SCHEMA FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:02PM UTC 2019-08-08--><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:country="http://xbrl.sec.gov/country/2017-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:srt="http://fasb.org/srt/2019-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2011-01-31" xmlns:ufpt="http://www.ufpt.com/20190630" xmlns:us-gaap="http://fasb.org/us-gaap/2019-01-31" xmlns:us-types="http://fasb.org/us-types/2019-01-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.ufpt.com/20190630">
  <xsd:import namespace="http://xbrl.sec.gov/country/2017-01-31" schemaLocation="https://xbrl.sec.gov/country/2017/country-2017-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/invest/2013-01-31" schemaLocation="http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/naics/2011-01-31" schemaLocation="http://xbrl.sec.gov/naics/2011/naics-2011-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/sic/2011-01-31" schemaLocation="http://xbrl.sec.gov/sic/2011/sic-2011-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/exch/2018-01-31" schemaLocation="https://xbrl.sec.gov/exch/2018/exch-2018-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/stpr/2011-01-31" schemaLocation="http://xbrl.sec.gov/stpr/2011/stpr-2011-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/currency/2017-01-31" schemaLocation="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20190630_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20190630_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20190630_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20190630_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="statement-document-and-entity-information" roleURI="http://www.ufpt.com/20190630/role/statement-document-and-entity-information">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">000 - Document - Document And Entity Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-condensed-consolidated-balance-sheets-current-period-unaudited" roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-condensed-consolidated-statements-of-income-unaudited" roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">003 - Statement - Condensed Consolidated Statements of Income (Unaudited)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-condensed-consolidated-statements-of-cash-flows-unaudited" roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">005 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-basis-of-presentation" roleURI="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">006 - Disclosure - Note 1 - Basis of Presentation</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition" roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">007 - Disclosure - Note 2 - Revenue Recognition</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-" roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">008 - Disclosure - Note 3 - Supplemental Cash Flow Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-of-financial-instruments-" roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">009 - Disclosure - Note 4 - Fair Value of Financial Instruments</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-sharebased-compensation" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">010 - Disclosure - Note 5 - Share-Based Compensation</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-inventories-" roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">011 - Disclosure - Note 6 - Inventories</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-leases" roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">012 - Disclosure - Note 7 - Leases</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-income-per-share-" roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">013 - Disclosure - Note 8 - Income Per Share</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-segment-reporting" roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">014 - Disclosure - Note 9 - Segment Reporting</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-other-intangible-assets-" roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">015 - Disclosure - Note 10 - Other Intangible Assets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-income-taxes" roleURI="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">016 - Disclosure - Note 11 - Income Taxes</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-indebtedness" roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">017 - Disclosure - Note 12 - Indebtedness</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-acquisition" roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">018 - Disclosure - Note 13 - Acquisition</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-significant-accounting-policies-policies" roleURI="http://www.ufpt.com/20190630/role/statement-significant-accounting-policies-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">019 - Disclosure - Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">020 - Disclosure - Note 2 - Revenue Recognition (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">021 - Disclosure - Note 3 - Supplemental Cash Flow Information (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-of-financial-instruments-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">022 - Disclosure - Note 4 - Fair Value of Financial Instruments (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-sharebased-compensation-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">023 - Disclosure - Note 5 - Share-Based Compensation (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-inventories-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">024 - Disclosure - Note 6 - Inventories (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-leases-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">025 - Disclosure - Note 7 - Leases (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-income-per-share-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">026 - Disclosure - Note 8 - Income Per Share (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-segment-reporting-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">027 - Disclosure - Note 9 - Segment Reporting (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-other-intangible-assets-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">028 - Disclosure - Note 10 - Other Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-indebtedness-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">029 - Disclosure - Note 12 - Indebtedness (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-acquisition-tables" roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">030 - Disclosure - Note 13 - Acquisition (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-basis-of-presentation-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">031 - Disclosure - Note 1 - Basis of Presentation (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">032 - Disclosure - Note 2 - Revenue Recognition (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">033 - Disclosure - Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">034 - Disclosure - Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">035 - Disclosure - Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">036 - Disclosure - Note 4 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-sharebased-compensation-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">037 - Disclosure - Note 5 - Share-Based Compensation (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-sharebased-compensation-compensation-cost-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-compensation-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">038 - Disclosure - Note 5 - Share-Based Compensation - Compensation Cost (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">039 - Disclosure - Note 5 - Share-Based Compensation - Summary of Stock Option Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">040 - Disclosure - Note 5 - Stock-Based Compensation - Black-scholes Option Pricing Model (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">041 - Disclosure - Note 5 - Share-Based Compensation - Restricted Stock Unit Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-inventories-summary-of-inventory-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">042 - Disclosure - Note 6 - Inventories - Summary of Inventory (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-leases-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">043 - Disclosure - Note 7 - Leases (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-leases-lease-cost-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-lease-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">044 - Disclosure - Note 7 - Leases - Lease Cost (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-leases-aggregate-future-lease-payments-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">045 - Disclosure - Note 7 - Leases - Aggregate Future Lease Payments (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">046 - Disclosure - Note 7 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-income-per-share-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">047 - Disclosure - Note 8 - Income Per Share (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">048 - Disclosure - Note 8 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-segment-reporting-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">049 - Disclosure - Note 9 - Segment Reporting (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-segment-reporting-net-sales-by-market-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-net-sales-by-market-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">050 - Disclosure - Note 9 - Segment Reporting - Net Sales by Market (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-other-intangible-assets-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">051 - Disclosure - Note 10 - Other Intangible Assets (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-definitelived-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">052 - Disclosure - Note 10 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">053 - Disclosure - Note 10 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-income-taxes-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">054 - Disclosure - Note 11 - Income Taxes (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-indebtedness-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">055 - Disclosure - Note 12 - Indebtedness (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-indebtedness-longterm-debt-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-longterm-debt-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">056 - Disclosure - Note 12 - Indebtedness - Long-term Debt (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-acquisition-details-textual" roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">057 - Disclosure - Note 13 - Acquisition (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">058 - Disclosure - Note 13 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-acquisition-pro-forma-information-unaudited-details" roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-pro-forma-information-unaudited-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">059 - Disclosure - Note 13 - Acquisition - Pro Forma Information (Unaudited) (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element abstract="true" id="ufpt_AerospaceDefenseMember" name="AerospaceDefenseMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_AmendedAndRestatedCreditAgreementMember" name="AmendedAndRestatedCreditAgreementMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_AutomotiveMember" name="AutomotiveMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" name="BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" name="ChairmanChiefExecutiveOfficerAndPresidentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_CommonStockOutstandingMember" name="CommonStockOutstandingMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ConsumerMember" name="ConsumerMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" name="ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" name="ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" name="CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_DeferredRevenueMember" name="DeferredRevenueMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_DielectricsMember" name="DielectricsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_DocumentAndEntityInformation" name="DocumentAndEntityInformation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ElectronicsMember" name="ElectronicsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_EmployeeAndNonemployeeStockOptionMember" name="EmployeeAndNonemployeeStockOptionMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_EngineeringAndDevelopmentMember" name="EngineeringAndDevelopmentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_IndustrialMember" name="IndustrialMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_InitialRecognitionOfLeaseAssetAndLiability" name="InitialRecognitionOfLeaseAssetAndLiability" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_MedicalMember" name="MedicalMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NoteToFinancialStatementDetailsTextual" name="NoteToFinancialStatementDetailsTextual" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NotesToFinancialStatements" name="NotesToFinancialStatements" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NotesToFinancialStatementsAbstract" name="NotesToFinancialStatementsAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_NumberOfLeaseTermOptions" name="NumberOfLeaseTermOptions" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_ProceedsFromStockOptionsExercisedNet" name="ProceedsFromStockOptionsExercisedNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" name="RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_RevisionsPolicyPolicyTextBlock" name="RevisionsPolicyPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" name="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" name="SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_SubsidiaryGuarantorsMember" name="SubsidiaryGuarantorsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_TermLoanMember" name="TermLoanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_The2003IncentivePlanMember" name="The2003IncentivePlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ToolingAndMachineryMember" name="ToolingAndMachineryMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_TradeNameAndBrandMember" name="TradeNameAndBrandMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_UnsecuredRevolvingCreditFacilityMember" name="UnsecuredRevolvingCreditFacilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_UnsecuredTermLoanMember" name="UnsecuredTermLoanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" name="statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" name="statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-other-intangible-assets-tables" name="statement-statement-note-10-other-intangible-assets-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" name="statement-statement-note-12-indebtedness-longterm-debt-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-indebtedness-tables" name="statement-statement-note-12-indebtedness-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" name="statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" name="statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-acquisition-tables" name="statement-statement-note-13-acquisition-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" name="statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" name="statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-2-revenue-recognition-tables" name="statement-statement-note-2-revenue-recognition-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" name="statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" name="statement-statement-note-3-supplemental-cash-flow-information-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" name="statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" name="statement-statement-note-4-fair-value-of-financial-instruments-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" name="statement-statement-note-5-sharebased-compensation-compensation-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" name="statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" name="statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-sharebased-compensation-tables" name="statement-statement-note-5-sharebased-compensation-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" name="statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" name="statement-statement-note-6-inventories-summary-of-inventory-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-6-inventories-tables" name="statement-statement-note-6-inventories-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" name="statement-statement-note-7-leases-aggregate-future-lease-payments-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" name="statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-leases-lease-cost-details" name="statement-statement-note-7-leases-lease-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-leases-tables" name="statement-statement-note-7-leases-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-8-income-per-share-tables" name="statement-statement-note-8-income-per-share-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" name="statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" name="statement-statement-note-9-segment-reporting-net-sales-by-market-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-9-segment-reporting-tables" name="statement-statement-note-9-segment-reporting-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-significant-accounting-policies-policies" name="statement-statement-significant-accounting-policies-policies" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>9
<FILENAME>ufpt-20190630_cal.xml
<DESCRIPTION>XBRL CALCULATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:03PM UTC 2019-08-08--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_CashAcquiredFromAcquisition" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_TreasuryStockValue" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="extended">
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="us-gaap_IncreaseDecreaseInReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_GainLossOnDispositionOfAssets" xlink:type="arc"/>
    <link:calculationArc order="6" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInReceivables" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="arc"/>
    <link:calculationArc order="9" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="arc"/>
    <link:calculationArc order="11" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="arc"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="arc"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermDebt" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_InvestmentIncomeInterest" xlink:type="arc"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>ufpt-20190630_def.xml
<DESCRIPTION>XBRL DEFINITION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:02PM UTC 2019-08-08--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-" xlink:href="ufpt-20190630.xsd#statement-note-4-fair-value-of-financial-instruments-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-" xlink:href="ufpt-20190630.xsd#statement-note-3-supplemental-cash-flow-information-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-document-and-entity-information" xlink:href="ufpt-20190630.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TreasuryStockShares" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation" xlink:href="ufpt-20190630.xsd#statement-note-1-basis-of-presentation" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RestatementAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RestatementDomain" xlink:to="srt_RestatementAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_StockCompensationPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementScenarioAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioForecastMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases" xlink:href="ufpt-20190630.xsd#statement-note-7-leases" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes" xlink:href="ufpt-20190630.xsd#statement-note-11-income-taxes" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeAxis" xlink:label="us-gaap_LeaseArrangementTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LeaseArrangementTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseArrangementTypeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-significant-accounting-policies-policies" xlink:href="ufpt-20190630.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_RevisionsPolicyPolicyTextBlock" xlink:label="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:href="ufpt-20190630.xsd#statement-note-3-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-tables" xlink:href="ufpt-20190630.xsd#statement-note-4-fair-value-of-financial-instruments-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-tables" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-tables" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-1-basis-of-presentation-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RestatementAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RestatementDomain" xlink:to="srt_RestatementAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharePrice" xlink:label="us-gaap_SharePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_StockCompensationPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementScenarioAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioForecastMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharePrice" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfReportableSegments" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfOperatingSegments" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-11-income-taxes-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd#invest_DerivativeNotionalAmount" xlink:label="invest_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeLossOnDerivative" xlink:label="us-gaap_DerivativeLossOnDerivative" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentFaceAmount" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="invest_DerivativeNotionalAmount" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeTermOfContract" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFixedInterestRate" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeLossOnDerivative" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NumberOfLeaseTermOptions" xlink:label="ufpt_NumberOfLeaseTermOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeAxis" xlink:label="us-gaap_LeaseArrangementTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LeaseArrangementTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseArrangementTypeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_NumberOfLeaseTermOptions" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:href="ufpt-20190630.xsd#statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:href="ufpt-20190630.xsd#statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract" xlink:label="us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel2Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsFairValueDisclosureAbstract" xlink:to="us-gaap_DerivativeAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-longterm-debt-details" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness-longterm-debt-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TermLoanMember" xlink:label="ufpt_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_TermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Assets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_TreasuryStockValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="us-gaap_IncreaseDecreaseInReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_GainLossOnDispositionOfAssets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInReceivables" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-lease-cost-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-lease-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCostAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_VariableLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_LeaseCost" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InvestmentIncomeInterest" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ufpt_ToolingAndMachineryMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ufpt_EngineeringAndDevelopmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-compensation-cost-details" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-compensation-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-compensation-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:href="ufpt-20190630.xsd#statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="extended">
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="ufpt_CommonStockOutstandingMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_TreasuryStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-net-sales-by-market-details" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting-net-sales-by-market-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-net-sales-by-market-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_MajorCustomersAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_MedicalMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_AutomotiveMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_ConsumerMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_AerospaceDefenseMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_IndustrialMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_ElectronicsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="arc"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>11
<FILENAME>ufpt-20190630_lab.xml
<DESCRIPTION>XBRL LABEL FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:02PM UTC 2019-08-08--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DocumentAndEntityInformation" xlink:label="ufpt_DocumentAndEntityInformation" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DocumentAndEntityInformation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document And Entity Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DocumentAndEntityInformation" xlink:to="ufpt_DocumentAndEntityInformation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeLossOnDerivative" xlink:label="us-gaap_DerivativeLossOnDerivative" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeLossOnDerivative-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeLossOnDerivative</link:label>
    <link:label xlink:label="us-gaap_DerivativeLossOnDerivative-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Loss on Derivative</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeLossOnDerivative" xlink:to="us-gaap_DerivativeLossOnDerivative-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected dividends</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NoteToFinancialStatementDetailsTextual-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note To Financial Statement Details Textual</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="ufpt_NoteToFinancialStatementDetailsTextual-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-significant-accounting-policies-policies" xlink:label="ufpt_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-significant-accounting-policies-policies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-significant-accounting-policies-policies" xlink:to="ufpt_statement-statement-significant-accounting-policies-policies-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-2-revenue-recognition-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Revenue Recognition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:to="ufpt_statement-statement-note-2-revenue-recognition-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Supplemental Cash Flow Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:to="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Risk-free interest rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" xlink:label="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Fair Value of Financial Instruments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" xlink:to="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-tables" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Share-Based Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-tables" xlink:to="ufpt_statement-statement-note-5-sharebased-compensation-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-6-inventories-tables" xlink:label="ufpt_statement-statement-note-6-inventories-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-inventories-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-inventories-tables" xlink:to="ufpt_statement-statement-note-6-inventories-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-tables" xlink:label="ufpt_statement-statement-note-7-leases-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-leases-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-leases-tables" xlink:to="ufpt_statement-statement-note-7-leases-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-8-income-per-share-tables" xlink:label="ufpt_statement-statement-note-8-income-per-share-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-income-per-share-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Income Per Share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-8-income-per-share-tables" xlink:to="ufpt_statement-statement-note-8-income-per-share-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-9-segment-reporting-tables" xlink:label="ufpt_statement-statement-note-9-segment-reporting-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-9-segment-reporting-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Segment Reporting</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-9-segment-reporting-tables" xlink:to="ufpt_statement-statement-note-9-segment-reporting-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-10-other-intangible-assets-tables" xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Other Intangible Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-other-intangible-assets-tables" xlink:to="ufpt_statement-statement-note-10-other-intangible-assets-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other current assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-12-indebtedness-tables" xlink:label="ufpt_statement-statement-note-12-indebtedness-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-indebtedness-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Indebtedness</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-indebtedness-tables" xlink:to="ufpt_statement-statement-note-12-indebtedness-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-13-acquisition-tables" xlink:label="ufpt_statement-statement-note-13-acquisition-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-acquisition-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Acquisition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-acquisition-tables" xlink:to="ufpt_statement-statement-note-13-acquisition-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected volatility</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:to="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesCurrent</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:to="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:to="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:label="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:to="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Share-Based Compensation - Compensation Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" xlink:to="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Share-Based Compensation - Summary of Stock Option Activity (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:to="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:label="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Stock-Based Compensation - Black-scholes Option Pricing Model (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:to="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Share-Based Compensation - Restricted Stock Unit Activity (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:to="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" xlink:label="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Inventories - Summary of Inventory (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" xlink:to="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationConsiderationTransferred1</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total consideration</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-lease-cost-details" xlink:label="ufpt_statement-statement-note-7-leases-lease-cost-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-leases-lease-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Leases - Lease Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-leases-lease-cost-details" xlink:to="ufpt_statement-statement-note-7-leases-lease-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" xlink:label="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Leases - Aggregate Future Lease Payments (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" xlink:to="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:label="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:to="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:label="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:to="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" xlink:label="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Segment Reporting - Net Sales by Market (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" xlink:to="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:to="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:to="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" xlink:label="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Indebtedness - Long-term Debt (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" xlink:to="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:label="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:to="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awarded, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:label="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Acquisition - Pro Forma Information (Unaudited) (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:to="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Percentage of Voting Interests Acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares vested, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatements" xlink:label="ufpt_NotesToFinancialStatements" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NotesToFinancialStatements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NotesToFinancialStatements" xlink:to="ufpt_NotesToFinancialStatements-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NotesToFinancialStatementsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="ufpt_NotesToFinancialStatementsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average award date fair value (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, restricted stock units (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, restricted stock units (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeTermOfContract</link:label>
    <link:label xlink:label="us-gaap_DerivativeTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Term of Contract</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeTermOfContract" xlink:to="us-gaap_DerivativeTermOfContract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awarded, restricted stock units (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Shares vested, restricted stock units (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, weighted average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current portion of long-term debt</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Current portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtCurrent" xlink:to="us-gaap_LongTermDebtCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:to="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, weighted average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Pro Forma Information [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaRevenue</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted-average grant date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average exercise price (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeasesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsPayableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, shares under options (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revolving Credit Facility [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Capital additions accrued but not yet paid</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from sale of fixed assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PolicyTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_PolicyTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Additions to property, plant, and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted average common equivalent shares due to stock, stock options and RSUs (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-cash investing and financing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted average common shares outstanding:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncompeteAgreementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxesPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income taxes, net of refunds</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProductMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductMember" xlink:to="us-gaap_ProductMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Assets</link:label>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid for:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PlanNameAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CustomerListsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Lists [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerListsMember" xlink:to="us-gaap_CustomerListsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Net share settlement of restricted stock units and stock option tax withholding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetNet</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Unbilled Receivables - beginning of period</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Unbilled Receivables - end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNet" xlink:to="us-gaap_ContractWithCustomerAssetNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AwardTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accumulated amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsNet</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net balance</link:label>
    <link:label xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockCompensationPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockCompensationPlanMember" xlink:to="us-gaap_StockCompensationPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less accumulated depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PropertyPlantAndEquipmentNet</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from exercise of stock options, net of shares presented for exercise</link:label>
    <link:label xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The cash inflow associated with the amount received from holders exercising their stock options, net of attestation.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_The2003IncentivePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The 2003 Incentive Plan [Member]</link:label>
    <link:label xlink:label="ufpt_The2003IncentivePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the reporting entity's "2003 Incentive Plan."</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_The2003IncentivePlanMember" xlink:to="ufpt_The2003IncentivePlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice</link:label>
    <link:label xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Paid for Tax Withholding for Share Based Compensation Market Price</link:label>
    <link:label xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the market price per share of shares used by the employees to repay the employer.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:to="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative financial instruments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssets" xlink:to="us-gaap_DerivativeAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee and Nonemployee Stock Option [Member]</link:label>
    <link:label xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract that gives the holder the right, but not the obligation, either to purchase or to sell a certain number of shares of stock at a predetermined price for a specified period of time.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_MedicalMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Medical [Member]</link:label>
    <link:label xlink:label="ufpt_MedicalMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Medical group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_MedicalMember" xlink:to="ufpt_MedicalMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeInstrumentRiskAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeInstrumentRiskAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeContractTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_DerivativeContractTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ConsumerMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consumer [Member]</link:label>
    <link:label xlink:label="ufpt_ConsumerMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Consumer group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ConsumerMember" xlink:to="ufpt_ConsumerMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from investing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AutomotiveMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Automotive [Member]</link:label>
    <link:label xlink:label="ufpt_AutomotiveMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Automotive group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AutomotiveMember" xlink:to="ufpt_AutomotiveMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_IndustrialMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Industrial [Member]</link:label>
    <link:label xlink:label="ufpt_IndustrialMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Industrial group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_IndustrialMember" xlink:to="ufpt_IndustrialMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ElectronicsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Electronics [Member]</link:label>
    <link:label xlink:label="ufpt_ElectronicsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Electronics group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ElectronicsMember" xlink:to="ufpt_ElectronicsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AerospaceDefenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aerospace &amp; Defense [Member]</link:label>
    <link:label xlink:label="ufpt_AerospaceDefenseMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Aerospace &amp; Defense group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AerospaceDefenseMember" xlink:to="ufpt_AerospaceDefenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income per share:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-qualified deferred compensation plan and other liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DielectricsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dielectrics [Member]</link:label>
    <link:label xlink:label="ufpt_DielectricsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the entity Dielectrics.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DielectricsMember" xlink:to="ufpt_DielectricsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccruedLiabilities</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accrued Liabilities, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income tax expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amended and Restated Credit Agreement [Member]</link:label>
    <link:label xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the amended and restated credit agreement.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_UnsecuredTermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unsecured Term Loan [Member]</link:label>
    <link:label xlink:label="ufpt_UnsecuredTermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the unsecured term loan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_UnsecuredTermLoanMember" xlink:to="ufpt_UnsecuredTermLoanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SubsidiaryGuarantorsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsidiary Guarantors [Member]</link:label>
    <link:label xlink:label="ufpt_SubsidiaryGuarantorsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the subsidiary guarantors granting the credit agreement to the company.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SubsidiaryGuarantorsMember" xlink:to="ufpt_SubsidiaryGuarantorsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block]</link:label>
    <link:label xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed. The amounts are aggregated by award type.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:to="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unsecured Revolving Credit Facility [Member]</link:label>
    <link:label xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the unsecured revolving credit facility.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsPayable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Chairman Chief Executive Officer and President [Member]</link:label>
    <link:label xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the entity's Chairman, the highest ranking executive officer, who has an ultimate managerial responsibility for the entity and who reports to the board of directors and the first or second ranking officer who may be appointed by the board of directors.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at beginning of period</link:label>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Allocated share based compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:label xlink:label="dei_AmendmentFlag-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</link:label>
    <link:label xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gain on sale of fixed assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharesOutstanding</link:label>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance (in shares)</link:label>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInOtherOperatingAssets</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_CurrentFiscalYearEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Basis Spread on Variable Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableLeaseCost" xlink:to="us-gaap_VariableLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total lease cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeAxis" xlink:label="us-gaap_LeaseArrangementTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseArrangementTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease Arrangement, Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentInterestRateEffectivePercentage</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest Rate, Effective Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseArrangementTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease Arrangement, Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseArrangementTypeDomain" xlink:to="us-gaap_LeaseArrangementTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating, weighted-average discount rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCostAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease Cost:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_LeaseCostAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalPeriodFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalYearFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShortTermLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-term</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCostTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentPeriodEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInPrepaidExpense</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating, weighted average remaining lease term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityEmergingGrowthCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentFaceAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentFaceAmount</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentFaceAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Face Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentFaceAmount" xlink:to="us-gaap_DebtInstrumentFaceAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentType-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:label xlink:label="dei_EntitySmallBusiness-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GainLossRelatedToLitigationSettlement-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GainLossRelatedToLitigationSettlement</link:label>
    <link:label xlink:label="us-gaap_GainLossRelatedToLitigationSettlement-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Material overcharge settlement</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossRelatedToLitigationSettlement" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityShellCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityFilerCategory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCurrentReportingStatus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition-related costs</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquisition Related Costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">London Interbank Offered Rate (LIBOR) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PrimeRateMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prime Rate [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrimeRateMember" xlink:to="us-gaap_PrimeRateMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="us-gaap_IncreaseDecreaseInReceivables" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInReceivables</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInReceivables-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Receivables, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInReceivables" xlink:to="us-gaap_IncreaseDecreaseInReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Excess tax benefits on share-based compensation - adjustment</link:label>
    <link:label xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments to Additional Paid in Capital, Income Tax Benefit from Share-based Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Long-term Debt Instruments [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:to="us-gaap_ScheduleOfDebtInstrumentsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInIncomeTaxesReceivable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Refundable income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCentralIndexKey-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityRegistrantName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TermLoanMember" xlink:label="ufpt_TermLoanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_TermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:label xlink:label="ufpt_TermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information relating to term loans.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_TermLoanMember" xlink:to="ufpt_TermLoanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:label xlink:label="dei_LegalEntityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AmortizationOfIntangibleAssets</link:label>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of Intangible Assets, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Allowance of doubtful accounts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TreasuryStockValue</link:label>
    <link:label xlink:label="us-gaap_TreasuryStockValue-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Treasury stock at cost, 29,559 shares at June 30, 2019 and 29,559 shares at December 31, 2018</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInInventories</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:label xlink:label="dei_TradingSymbol-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise of stock options net of shares presented for exercise (in shares)</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Exercised, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GainLossOnDispositionOfAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GainLossOnDispositionOfAssets</link:label>
    <link:label xlink:label="us-gaap_GainLossOnDispositionOfAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gain on sale of fixed assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnDispositionOfAssets" xlink:to="us-gaap_GainLossOnDispositionOfAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TableTextBlock</link:label>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes Tables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_TableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise of stock options net of shares presented for exercise</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RelatedPartyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="us-gaap_RelatedPartyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based compensation (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, general &amp; administrative expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based compensation</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Lender [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Raw materials</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lender Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesAndStockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities and stockholders' equity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Work in process</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained earnings</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Changes in operating assets and liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DisclosureTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes to Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating lease liabilities, noncurrent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Present value of lease liabilities</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating lease liabilities, current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating lease right of use assets</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EngineeringAndDevelopmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Engineering and Development [Member]</link:label>
    <link:label xlink:label="ufpt_EngineeringAndDevelopmentMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the information pertaining to engineering and development.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EngineeringAndDevelopmentMember" xlink:to="ufpt_EngineeringAndDevelopmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ToolingAndMachineryMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tooling and Machinery [Member]</link:label>
    <link:label xlink:label="ufpt_ToolingAndMachineryMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to tooling and machinery.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ToolingAndMachineryMember" xlink:to="ufpt_ToolingAndMachineryMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseLiability</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiability" xlink:to="us-gaap_FinanceLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: Interest</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxExpenseBenefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2019</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases due to consideration received from customers</link:label>
    <link:label xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:to="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:label xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Working capital adjustment</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Working Capital Adjustment</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The amount of adjustment to working capital in a business combination.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of accrued liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_TradeNameAndBrandMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade Name and Brand [Member]</link:label>
    <link:label xlink:label="ufpt_TradeNameAndBrandMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Rights acquired through registration of a business name to gain or protect exclusive use thereof and the brand of the business.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_TradeNameAndBrandMember" xlink:to="ufpt_TradeNameAndBrandMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAssetsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2019</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated useful life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DeferredRevenueMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Revenue [Member]</link:label>
    <link:label xlink:label="ufpt_DeferredRevenueMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DeferredRevenueMember" xlink:to="ufpt_DeferredRevenueMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseTermOfContract</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DepreciationDepletionAndAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationDepletionAndAmortization" xlink:to="us-gaap_DepreciationDepletionAndAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net share settlement of restricted stock units and stock option tax withholding (in shares)</link:label>
    <link:label xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract" xlink:label="us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsFairValueDisclosureAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">(Liabilities) Assets:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsFairValueDisclosureAbstract" xlink:to="us-gaap_AssetsFairValueDisclosureAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AssetsCurrent</link:label>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases due to revenue recognized - not invoiced to customers</link:label>
    <link:label xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from unbilled revenue recognized.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:to="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxesReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Refundable income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesReceivable" xlink:to="us-gaap_IncomeTaxesReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockShares-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Treasury stock, shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockShares" xlink:to="us-gaap_TreasuryStockShares-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, $.01 par value, 20,000,000 shares authorized; 7,457,788 and 7,428,229 shares issued and outstanding, respectively at June 30, 2019; 7,415,002 and 7,385,443 shares issued and outstanding, respectively at December 31, 2018</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementFrequencyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementsRecurringMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsRecurringMember" xlink:to="us-gaap_FairValueMeasurementsRecurringMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockParOrStatedValuePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_RestatementAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_RestatementDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RestatementDomain" xlink:to="srt_RestatementDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:label xlink:label="srt_RestatementAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Adjustment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RestatementAdjustmentMember" xlink:to="srt_RestatementAdjustmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasePayments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating, cash paid for amounts included in measurement of lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MaximumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MinimumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="locator"/>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total identifiable assets</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of assets acquired, including goodwill at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NumberOfLeaseTermOptions" xlink:label="ufpt_NumberOfLeaseTermOptions" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NumberOfLeaseTermOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_NumberOfLeaseTermOptions</link:label>
    <link:label xlink:label="ufpt_NumberOfLeaseTermOptions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Lease Term Options</link:label>
    <link:label xlink:label="ufpt_NumberOfLeaseTermOptions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of lease term options.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NumberOfLeaseTermOptions" xlink:to="ufpt_NumberOfLeaseTermOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_ProductOrServiceAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_ProductsAndServicesDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:label xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Percentage of concentration risk</link:label>
    <link:label xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The percentage of revenue, including tax collected from customer, from satisfaction of performance obligation by transferring promised good or service to customer.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:to="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Flow, Supplemental Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PrepaidExpenseCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total inventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_MajorCustomersAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_NameOfMajorCustomerDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueInputsLevel2Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReceivablesNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivables, less allowance for doubtful accounts of $501 at June 30, 2019 and $564 at December 31, 2018</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_ReceivablesNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NumberOfOperatingSegments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NumberOfOperatingSegments</link:label>
    <link:label xlink:label="us-gaap_NumberOfOperatingSegments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Operating Segments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NumberOfReportableSegments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NumberOfReportableSegments</link:label>
    <link:label xlink:label="us-gaap_NumberOfReportableSegments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapital-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredCompensationPlanAssets</link:label>
    <link:label xlink:label="us-gaap_DeferredCompensationPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-qualified deferred compensation plan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationPlanAssets" xlink:to="us-gaap_DeferredCompensationPlanAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherNonoperatingIncomeExpense</link:label>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other expense (income)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SegmentReportingDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Decreases due to customer invoicing</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InvestmentIncomeInterest-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_InvestmentIncomeInterest</link:label>
    <link:label xlink:label="us-gaap_InvestmentIncomeInterest-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Interest income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentIncomeInterest" xlink:to="us-gaap_InvestmentIncomeInterest-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Liabilities</link:label>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInFinancingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash (used in) provided by financing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingencies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and contingencies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:label xlink:label="srt_DirectorMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Director [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_DirectorMember" xlink:to="srt_DirectorMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingIncomeLoss</link:label>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Revenue recognized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd#invest_DerivativeNotionalAmount" xlink:label="invest_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:label xlink:label="invest_DerivativeNotionalAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">invest_DerivativeNotionalAmount</link:label>
    <link:label xlink:label="invest_DerivativeNotionalAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Notional Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="invest_DerivativeNotionalAmount" xlink:to="invest_DerivativeNotionalAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInOperatingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by operating activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInInvestingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquired in Dielectrics business combination</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease</link:label>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net increase (decrease) in cash and cash equivalents</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GrossProfit</link:label>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross profit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostOfGoodsAndServicesSold-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiability</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201602Member" xlink:to="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TypeOfAdoptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Type of Adoption [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_TypeOfAdoptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payment of statutory withholdings for stock options exercised and restricted stock units vested</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LettersOfCreditOutstandingAmount</link:label>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Letters of Credit Outstanding, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments for New Accounting Pronouncements [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_ScenarioUnspecifiedDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioUnspecifiedDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" xlink:type="locator"/>
    <link:label xlink:label="srt_ScenarioForecastMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forecast [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioForecastMember" xlink:to="srt_ScenarioForecastMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ProceedsFromStockOptionsExercised</link:label>
    <link:label xlink:label="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_TitleOfIndividualAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Treasury Stock [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockMember" xlink:to="us-gaap_TreasuryStockMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_StatementScenarioAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_StatementScenarioAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapitalMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementEquityComponentsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EquityComponentDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherCurrentLiabilitiesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Current Liabilities [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCurrentLiabilitiesMember" xlink:to="us-gaap_OtherCurrentLiabilitiesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</link:label>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income before income tax expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfLongTermDebt</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Principal repayments of long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermDebt" xlink:to="us-gaap_RepaymentsOfLongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BalanceSheetLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BalanceSheetLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_BalanceSheetLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingPoliciesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfLongTermLinesOfCredit</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payments on revolving line of credit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expenses [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Nonoperating Income (Expense) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:label xlink:label="dei_Security12bTitle-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from the issuance of long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from advances on revolving line of credit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharePrice" xlink:label="us-gaap_SharePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharePrice</link:label>
    <link:label xlink:label="us-gaap_SharePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Price</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharePrice" xlink:to="us-gaap_SharePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</link:label>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Diluted weighted average common shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="locator"/>
    <link:label xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adoption of ASC 606</link:label>
    <link:label xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the cumulative effects of new accounting principle in period of adoption.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:to="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="locator"/>
    <link:label xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Recognition of lease asset and liability (ASC 842)</link:label>
    <link:label xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The initial recognition of lease asset and liability due to new adoption of new accounting standards.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:to="ufpt_InitialRecognitionOfLeaseAssetAndLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByAssetClassAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Class [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueByAssetClassAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Class [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateContinuingOperations</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Percent, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_RevisionsPolicyPolicyTextBlock" xlink:label="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_RevisionsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revisions Policy [Policy Text Block]</link:label>
    <link:label xlink:label="ufpt_RevisionsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for revisions to financial statements.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_RevisionsPolicyPolicyTextBlock" xlink:to="ufpt_RevisionsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset and Liability [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfCashFlowsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2019</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_CommonStockOutstandingMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock Outstanding [Member]</link:label>
    <link:label xlink:label="ufpt_CommonStockOutstandingMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents common stock outstanding.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_CommonStockOutstandingMember" xlink:to="ufpt_CommonStockOutstandingMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Future Minimum Rental Payments for Operating Leases [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from financing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:to="us-gaap_DeferredTaxLiabilitiesNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeFairValueOfDerivativeNet</link:label>
    <link:label xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Fair Value, Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:to="us-gaap_DerivativeFairValueOfDerivativeNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-qualified deferred compensation plan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Assets acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total stockholders&#8217; equity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Acquisition of Dielectrics, net of cash acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementClassOfStockAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term debt, excluding current portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAcquiredFromAcquisition-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashAcquiredFromAcquisition</link:label>
    <link:label xlink:label="us-gaap_CashAcquiredFromAcquisition-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Cash from Dielectrics</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid at closing</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesGross-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestRateSwapMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Rate Swap [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestRateSwapMember" xlink:to="us-gaap_InterestRateSwapMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Weighted Average Number of Shares [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeFixedInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeFixedInterestRate</link:label>
    <link:label xlink:label="us-gaap_DerivativeFixedInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Fixed Interest Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeFixedInterestRate" xlink:to="us-gaap_DerivativeFixedInterestRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:type="arc"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>12
<FILENAME>ufpt-20190630_pre.xml
<DESCRIPTION>XBRL PRESENTATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:02PM UTC 2019-08-08--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-" xlink:href="ufpt-20190630.xsd#statement-note-4-fair-value-of-financial-instruments-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-" xlink:href="ufpt-20190630.xsd#statement-note-3-supplemental-cash-flow-information-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-document-and-entity-information" xlink:href="ufpt-20190630.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TreasuryStockShares" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation" xlink:href="ufpt-20190630.xsd#statement-note-1-basis-of-presentation" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RestatementAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_StockCompensationPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementScenarioAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioForecastMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases" xlink:href="ufpt-20190630.xsd#statement-note-7-leases" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes" xlink:href="ufpt-20190630.xsd#statement-note-11-income-taxes" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeAxis" xlink:label="us-gaap_LeaseArrangementTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LeaseArrangementTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-significant-accounting-policies-policies" xlink:href="ufpt-20190630.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_RevisionsPolicyPolicyTextBlock" xlink:label="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-significant-accounting-policies-policies" xlink:label="ufpt_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-significant-accounting-policies-policies" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:href="ufpt-20190630.xsd#statement-note-3-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-tables" xlink:href="ufpt-20190630.xsd#statement-note-4-fair-value-of-financial-instruments-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" xlink:label="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-tables" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-tables" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-6-inventories-tables" xlink:label="ufpt_statement-statement-note-6-inventories-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-6-inventories-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-tables" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-tables" xlink:label="ufpt_statement-statement-note-7-leases-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-7-leases-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-8-income-per-share-tables" xlink:label="ufpt_statement-statement-note-8-income-per-share-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-8-income-per-share-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-9-segment-reporting-tables" xlink:label="ufpt_statement-statement-note-9-segment-reporting-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-9-segment-reporting-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-10-other-intangible-assets-tables" xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-other-intangible-assets-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-12-indebtedness-tables" xlink:label="ufpt_statement-statement-note-12-indebtedness-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-indebtedness-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-13-acquisition-tables" xlink:label="ufpt_statement-statement-note-13-acquisition-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-acquisition-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-1-basis-of-presentation-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RestatementAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-n2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities-n2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharePrice" xlink:label="us-gaap_SharePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_StockCompensationPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementScenarioAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioForecastMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharePrice-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfReportableSegments-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfOperatingSegments-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-11-income-taxes-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-11-income-taxes-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd#invest_DerivativeNotionalAmount" xlink:label="invest_DerivativeNotionalAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeLossOnDerivative" xlink:label="us-gaap_DerivativeLossOnDerivative-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentFaceAmount-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="invest_DerivativeNotionalAmount-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeTermOfContract-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFixedInterestRate-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFairValueOfDerivativeNet-n2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeLossOnDerivative-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-details-textual" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_NumberOfLeaseTermOptions" xlink:label="ufpt_NumberOfLeaseTermOptions-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeAxis" xlink:label="us-gaap_LeaseArrangementTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseArrangementTypeDomain" xlink:label="us-gaap_LeaseArrangementTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="us-gaap_LeaseArrangementTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LeaseArrangementTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseArrangementTypeAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_NumberOfLeaseTermOptions-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:href="ufpt-20190630.xsd#statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:label="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:href="ufpt-20190630.xsd#statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:label="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract" xlink:label="us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueInputsLevel2Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsFairValueDisclosureAbstract" xlink:to="us-gaap_DerivativeAssets" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-other-intangible-assets-definitelived-intangible-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-n9" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-n9" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-5" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-5" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details" xlink:href="ufpt-20190630.xsd#statement-note-6-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" xlink:label="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-6-inventories-summary-of-inventory-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20190630.xsd#statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:label="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-longterm-debt-details" xlink:href="ufpt-20190630.xsd#statement-note-12-indebtedness-longterm-debt-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TermLoanMember" xlink:label="ufpt_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" xlink:label="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-indebtedness-longterm-debt-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_TermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebt" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-n8" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:label="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-1" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-n8" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-n8" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-n8" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-5" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:label="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue-n8" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-3" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_DeferredCompensationPlanAssets-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Assets-3" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities-3" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_TreasuryStockValue-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:label="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="us-gaap_IncreaseDecreaseInReceivables-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:label="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLongTermLinesOfCredit-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_GainLossOnDispositionOfAssets-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInReceivables-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-1" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLongTermLinesOfCredit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermLinesOfCredit-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-4" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-lease-cost-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-lease-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-lease-cost-details" xlink:label="ufpt_statement-statement-note-7-leases-lease-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-7-leases-lease-cost-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCostAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_VariableLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_LeaseCost" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossRelatedToLitigationSettlement" xlink:label="us-gaap_GainLossRelatedToLitigationSettlement-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossRelatedToLitigationSettlement-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InvestmentIncomeInterest-n8" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-3" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="us-gaap_ProductMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="ufpt_ToolingAndMachineryMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="ufpt_EngineeringAndDevelopmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:href="ufpt-20190630.xsd#statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability-5" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet-4" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-compensation-cost-details" xlink:href="ufpt-20190630.xsd#statement-note-5-sharebased-compensation-compensation-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-compensation-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" xlink:label="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-sharebased-compensation-compensation-cost-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20190630.xsd#statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" xlink:label="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-7-leases-aggregate-future-lease-payments-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20190630.xsd#statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:label="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:href="ufpt-20190630.xsd#statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:label="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-acquisition-pro-forma-information-unaudited-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:href="ufpt-20190630.xsd#statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:href="ufpt-20190630.xsd#statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="extended">
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="ufpt_CommonStockOutstandingMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_TreasuryStockMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding-5" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-net-sales-by-market-details" xlink:href="ufpt-20190630.xsd#statement-note-9-segment-reporting-net-sales-by-market-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-net-sales-by-market-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20190630.xsd#ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" xlink:label="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-9-segment-reporting-net-sales-by-market-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_MajorCustomersAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_MedicalMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_AutomotiveMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_ConsumerMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_AerospaceDefenseMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_IndustrialMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_ElectronicsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="arc"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6782181024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document And Entity Information - shares<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Aug. 01, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentInformationLineItems', window );"><strong>Document Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">UFP TECHNOLOGIES INC<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000914156<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">ufpt<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,428,229<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jun. 30,  2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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'.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6785292176">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Current Period Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 5,231<span></span>
</td>
<td class="nump">$ 3,238<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesNetCurrent', window );">Receivables, less allowance for doubtful accounts of $501 at June 30, 2019 and $564 at December 31, 2018</a></td>
<td class="nump">30,681<span></span>
</td>
<td class="nump">28,321<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">19,038<span></span>
</td>
<td class="nump">19,576<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expenses</a></td>
<td class="nump">2,267<span></span>
</td>
<td class="nump">2,206<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesReceivable', window );">Refundable income taxes</a></td>
<td class="nump">717<span></span>
</td>
<td class="nump">2,285<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">57,934<span></span>
</td>
<td class="nump">55,626<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment</a></td>
<td class="nump">113,866<span></span>
</td>
<td class="nump">111,779<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation and amortization</a></td>
<td class="num">(56,520)<span></span>
</td>
<td class="num">(54,112)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Net property, plant and equipment</a></td>
<td class="nump">57,346<span></span>
</td>
<td class="nump">57,667<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">51,838<span></span>
</td>
<td class="nump">51,838<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">21,603<span></span>
</td>
<td class="nump">22,232<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationPlanAssets', window );">Non-qualified deferred compensation plan</a></td>
<td class="nump">2,573<span></span>
</td>
<td class="nump">2,034<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right of use assets</a></td>
<td class="nump">3,531<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">140<span></span>
</td>
<td class="nump">201<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">194,965<span></span>
</td>
<td class="nump">189,598<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">5,895<span></span>
</td>
<td class="nump">6,836<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">7,504<span></span>
</td>
<td class="nump">8,458<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">2,951<span></span>
</td>
<td class="nump">2,507<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities, current</a></td>
<td class="nump">984<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current portion of long-term debt</a></td>
<td class="nump">3,571<span></span>
</td>
<td class="nump">2,857<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">20,905<span></span>
</td>
<td class="nump">20,658<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt, excluding current portion</a></td>
<td class="nump">13,857<span></span>
</td>
<td class="nump">22,286<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesNoncurrent', window );">Deferred income taxes</a></td>
<td class="nump">4,966<span></span>
</td>
<td class="nump">4,129<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent', window );">Non-qualified deferred compensation plan</a></td>
<td class="nump">2,595<span></span>
</td>
<td class="nump">2,044<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liabilities, noncurrent</a></td>
<td class="nump">2,598<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">390<span></span>
</td>
<td class="nump">24<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">45,311<span></span>
</td>
<td class="nump">49,141<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $.01 par value, 20,000,000 shares authorized; 7,457,788 and 7,428,229 shares issued and outstanding, respectively at June 30, 2019; 7,415,002 and 7,385,443 shares issued and outstanding, respectively at December 31, 2018</a></td>
<td class="nump">74<span></span>
</td>
<td class="nump">74<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">30,033<span></span>
</td>
<td class="nump">29,168<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">120,134<span></span>
</td>
<td class="nump">111,802<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockValue', window );">Treasury stock at cost, 29,559 shares at June 30, 2019 and 29,559 shares at December 31, 2018</a></td>
<td class="num">(587)<span></span>
</td>
<td class="num">(587)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">149,654<span></span>
</td>
<td class="nump">140,457<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders' equity</a></td>
<td class="nump">$ 194,965<span></span>
</td>
<td class="nump">$ 189,598<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.14)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6801-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118942415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate carrying value as of the balance sheet date of the liabilities for all deferred compensation arrangements payable beyond one year (or the operating cycle, if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationPlanAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of assets held under deferred compensation agreements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationPlanAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences, with jurisdictional netting and classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=d3e31917-109318<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=d3e31931-109318<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=d3e31958-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount due within one year of the balance sheet date (or one operating cycle, if longer) from tax authorities as of the balance sheet date representing refunds of overpayments or recoveries based on agreed-upon resolutions of disputes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.5(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.10)<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116846819&amp;loc=d3e3927-108312<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6787-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 05<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=68074540&amp;loc=d3e5879-108316<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-06(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6488278&amp;loc=d3e604059-122996<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=6405834&amp;loc=d3e23315-112656<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6779348768">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Allowance of doubtful accounts</a></td>
<td class="nump">$ 501<span></span>
</td>
<td class="nump">$ 564<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">20,000,000<span></span>
</td>
<td class="nump">20,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">7,457,788<span></span>
</td>
<td class="nump">7,415,002<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">7,428,229<span></span>
</td>
<td class="nump">7,385,443<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">Treasury stock, shares (in shares)</a></td>
<td class="nump">29,559<span></span>
</td>
<td class="nump">29,559<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=119407570&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=118936363&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=119407570&amp;loc=SL82919249-210447<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118955202&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6786388128">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Income (Unaudited) - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 51,399<span></span>
</td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 98,726<span></span>
</td>
<td class="nump">$ 91,949<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">37,028<span></span>
</td>
<td class="nump">36,033<span></span>
</td>
<td class="nump">71,859<span></span>
</td>
<td class="nump">68,779<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">14,371<span></span>
</td>
<td class="nump">12,986<span></span>
</td>
<td class="nump">26,867<span></span>
</td>
<td class="nump">23,170<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general &amp; administrative expenses</a></td>
<td class="nump">7,799<span></span>
</td>
<td class="nump">7,417<span></span>
</td>
<td class="nump">15,043<span></span>
</td>
<td class="nump">14,008<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">19<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,089<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossRelatedToLitigationSettlement', window );">Material overcharge settlement</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(104)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(104)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Gain on sale of fixed assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(15)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(55)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="nump">6,572<span></span>
</td>
<td class="nump">5,669<span></span>
</td>
<td class="nump">11,824<span></span>
</td>
<td class="nump">8,232<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InvestmentIncomeInterest', window );">Interest income</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(7)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(32)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="nump">194<span></span>
</td>
<td class="nump">404<span></span>
</td>
<td class="nump">425<span></span>
</td>
<td class="nump">677<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other expense (income)</a></td>
<td class="nump">198<span></span>
</td>
<td class="num">(3)<span></span>
</td>
<td class="nump">437<span></span>
</td>
<td class="num">(53)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income tax expense</a></td>
<td class="nump">6,180<span></span>
</td>
<td class="nump">5,275<span></span>
</td>
<td class="nump">10,962<span></span>
</td>
<td class="nump">7,640<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">1,582<span></span>
</td>
<td class="nump">1,285<span></span>
</td>
<td class="nump">2,630<span></span>
</td>
<td class="nump">1,873<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 4,598<span></span>
</td>
<td class="nump">$ 3,990<span></span>
</td>
<td class="nump">$ 8,332<span></span>
</td>
<td class="nump">$ 5,767<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net income per share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 1.12<span></span>
</td>
<td class="nump">$ 0.79<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 1.11<span></span>
</td>
<td class="nump">$ 0.78<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted average common shares outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">7,423<span></span>
</td>
<td class="nump">7,347<span></span>
</td>
<td class="nump">7,413<span></span>
</td>
<td class="nump">7,336<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">7,467<span></span>
</td>
<td class="nump">7,413<span></span>
</td>
<td class="nump">7,473<span></span>
</td>
<td class="nump">7,408<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=116868678&amp;loc=d3e1043-128460<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=117327953&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=117327953&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1252-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossRelatedToLitigationSettlement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) recognized in settlement of litigation and insurance claims. Excludes claims within an insurance entity's normal claims settlement process.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118942415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossRelatedToLitigationSettlement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=68072869&amp;loc=d3e41242-110953<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669625-108580<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=68048583&amp;loc=d3e3636-108311<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1448-109256<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6786537392">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock Outstanding [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Treasury Stock [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2017</a></td>
<td class="nump">7,280<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2017</a></td>
<td class="nump">$ 73<span></span>
</td>
<td class="nump">$ 26,664<span></span>
</td>
<td class="nump">$ 97,562<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">$ 123,712<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share-based compensation (in shares)</a></td>
<td class="nump">16<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">237<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">237<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">367<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">367<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding (in shares)</a></td>
<td class="num">(5)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(144)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(144)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,777<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,777<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation', window );">Excess tax benefits on share-based compensation - adjustment</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">167<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">167<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption', window );">Adoption of ASC 606</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(95)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(95)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Mar. 31, 2018</a></td>
<td class="nump">7,321<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Mar. 31, 2018</a></td>
<td class="nump">$ 73<span></span>
</td>
<td class="nump">27,291<span></span>
</td>
<td class="nump">99,244<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">126,021<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2017</a></td>
<td class="nump">7,280<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2017</a></td>
<td class="nump">$ 73<span></span>
</td>
<td class="nump">26,664<span></span>
</td>
<td class="nump">97,562<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">123,712<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,767<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Jun. 30, 2018</a></td>
<td class="nump">7,359<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Jun. 30, 2018</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">28,341<span></span>
</td>
<td class="nump">103,258<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">131,086<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Mar. 31, 2018</a></td>
<td class="nump">7,321<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Mar. 31, 2018</a></td>
<td class="nump">$ 73<span></span>
</td>
<td class="nump">27,291<span></span>
</td>
<td class="nump">99,244<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">126,021<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share-based compensation (in shares)</a></td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">453<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">454<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">35<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">597<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">597<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">3,990<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">3,990<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation', window );">Excess tax benefits on share-based compensation - adjustment</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption', window );">Adoption of ASC 606</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">24<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">24<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Jun. 30, 2018</a></td>
<td class="nump">7,359<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Jun. 30, 2018</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">28,341<span></span>
</td>
<td class="nump">103,258<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">131,086<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2018</a></td>
<td class="nump">7,385<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2018</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">29,168<span></span>
</td>
<td class="nump">111,802<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">140,457<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share-based compensation (in shares)</a></td>
<td class="nump">20<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">294<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">294<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">17<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">285<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">285<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding (in shares)</a></td>
<td class="num">(8)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(271)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(271)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,734<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,734<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Mar. 31, 2019</a></td>
<td class="nump">7,414<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Mar. 31, 2019</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">29,476<span></span>
</td>
<td class="nump">115,536<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">144,499<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2018</a></td>
<td class="nump">7,385<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2018</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">29,168<span></span>
</td>
<td class="nump">111,802<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">140,457<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,332<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Jun. 30, 2019</a></td>
<td class="nump">7,428<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Jun. 30, 2019</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">30,033<span></span>
</td>
<td class="nump">120,134<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">149,654<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Mar. 31, 2019</a></td>
<td class="nump">7,414<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Mar. 31, 2019</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">29,476<span></span>
</td>
<td class="nump">115,536<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">144,499<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">402<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">402<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">14<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">155<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">155<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">4,598<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">4,598<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Jun. 30, 2019</a></td>
<td class="nump">7,428<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Jun. 30, 2019</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">$ 30,033<span></span>
</td>
<td class="nump">$ 120,134<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">$ 149,654<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the cumulative effects of new accounting principle in period of adoption.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in additional paid in capital (APIC) resulting from a tax benefit associated with share-based compensation plan other than an employee stock ownership plan (ESOP). Includes, but is not limited to, excess tax benefit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116859624&amp;loc=d3e23524-113945<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669625-108580<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued which are neither cancelled nor held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6771327984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 8,332<span></span>
</td>
<td class="nump">$ 5,767<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash provided by operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">4,050<span></span>
</td>
<td class="nump">3,874<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets', window );">Gain on sale of fixed assets</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(55)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="nump">696<span></span>
</td>
<td class="nump">691<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income taxes</a></td>
<td class="nump">837<span></span>
</td>
<td class="nump">688<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInReceivables', window );">Receivables, net</a></td>
<td class="num">(2,360)<span></span>
</td>
<td class="num">(4,414)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="nump">538<span></span>
</td>
<td class="num">(1,451)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidExpense', window );">Prepaid expenses</a></td>
<td class="num">(61)<span></span>
</td>
<td class="num">(149)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInIncomeTaxesReceivable', window );">Refundable income taxes</a></td>
<td class="nump">1,568<span></span>
</td>
<td class="nump">401<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other assets</a></td>
<td class="num">(178)<span></span>
</td>
<td class="num">(248)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(1,222)<span></span>
</td>
<td class="nump">2,907<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="nump">30<span></span>
</td>
<td class="num">(1,005)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">444<span></span>
</td>
<td class="nump">286<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities', window );">Non-qualified deferred compensation plan and other liabilities</a></td>
<td class="num">(316)<span></span>
</td>
<td class="nump">155<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">12,358<span></span>
</td>
<td class="nump">7,447<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Additions to property, plant, and equipment</a></td>
<td class="num">(2,819)<span></span>
</td>
<td class="num">(2,991)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition of Dielectrics, net of cash acquired</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(76,978)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sale of fixed assets</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">68<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(2,819)<span></span>
</td>
<td class="num">(79,901)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromLongTermLinesOfCredit', window );">Proceeds from advances on revolving line of credit</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">36,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermLinesOfCredit', window );">Payments on revolving line of credit</a></td>
<td class="num">(7,000)<span></span>
</td>
<td class="num">(15,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt', window );">Proceeds from the issuance of long-term debt</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">20,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermDebt', window );">Principal repayments of long-term debt</a></td>
<td class="num">(715)<span></span>
</td>
<td class="num">(1,429)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ProceedsFromStockOptionsExercisedNet', window );">Proceeds from exercise of stock options, net of shares presented for exercise</a></td>
<td class="nump">440<span></span>
</td>
<td class="nump">964<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Payment of statutory withholdings for stock options exercised and restricted stock units vested</a></td>
<td class="num">(271)<span></span>
</td>
<td class="num">(144)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash (used in) provided by financing activities</a></td>
<td class="num">(7,546)<span></span>
</td>
<td class="nump">40,391<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease', window );">Net increase (decrease) in cash and cash equivalents</a></td>
<td class="nump">1,993<span></span>
</td>
<td class="num">(32,063)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at beginning of period</a></td>
<td class="nump">3,238<span></span>
</td>
<td class="nump">37,978<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at end of period</a></td>
<td class="nump">$ 5,231<span></span>
</td>
<td class="nump">$ 5,915<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ProceedsFromStockOptionsExercisedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the amount received from holders exercising their stock options, net of attestation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ProceedsFromStockOptionsExercisedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Includes effect from exchange rate changes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109226348&amp;loc=d3e2443-110228<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109226691&amp;loc=d3e2941-110230<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInIncomeTaxesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in income taxes receivable, which represents the amount due from tax authorities for refunds of overpayments or recoveries of income taxes paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInIncomeTaxesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the total amount due within one year (or one operating cycle) from all parties, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669625-108580<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromLongTermLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with maturities due beyond one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromLongTermLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLongTermLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for the settlement of obligation drawn from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with maturities due beyond one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLongTermLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6779239392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock', window );">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Basis of Presentation</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The interim condensed consolidated financial statements of UFP Technologies,&nbsp;Inc. (the &#x201c;Company&#x201d;) presented herein, have been prepared pursuant to the rules&nbsp;of the Securities and Exchange Commission for quarterly reports on Form&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div>-Q and do <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>included in the Company's <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> Annual Report on Form&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div>-K, as filed with the Securities and Exchange Commission.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The condensed consolidated balance sheets as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>the condensed consolidated statements of income for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the condensed consolidated statements of stockholders&#x2019; equity for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> and the condensed consolidated statements of cash flows for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>has been derived from the Company&#x2019;s annual financial statements that were audited by an independent registered public accounting firm but does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> include all of the information and footnotes required for complete annual financial statements.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The results of operations for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> necessarily indicative of the results to be expected for the entire fiscal year ending <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019.</div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">Recent Accounting Pronouncements</div></div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></div></div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; background-color: white"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">In </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 2016, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU)&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2016</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">02,</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;&#x201c;</div><div style="display: inline; font-style: italic;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">Leases (Accounting Standards Codification (ASC) </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">),</div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&#x201d; and issued subsequent amendments to the initial guidance in </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2018 </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">within ASU&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">01</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;and in </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> July 2018 </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">within ASU Nos.&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;and&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> </div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">The Company adopted ASC </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> on </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019. </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">See Note </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> for further details.</div></div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; background-color: white"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">In </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2017, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">the FASB issued ASU&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">04,</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div><div style="display: inline; font-style: italic;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">Intangibles&#x2014;Goodwill and Other (ASC </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">350</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">), Simplifying the Test for Goodwill Impairment</div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">. The guidance removes Step </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&#x2019;s carrying value exceeds its fair value, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15,</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019.</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> Early adoption is permitted for any impairment tests performed on testing dates after </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017.</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> The Company does </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> believe adoption will have a material impact on its financial condition or results of operations.</div></div></div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">Revisions</div></div></div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">Certain revisions have been made to the Condensed Consolidated Statements of Cash Flows for the </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> months ended </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2018, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">due to a reclassification of deferred </div><div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">revenue. The reclassification resulted in a decrease to the change in deferred revenue and a decrease in the change in accrued expenses in the amount of approximately </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$573</div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> thousand. These revisions had </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> impact on previously reported net income and are deemed immaterial to the previously issued financial statements.</div></div></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -URI http://asc.fasb.org/topic&amp;trid=2122149<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -URI http://asc.fasb.org/topic&amp;trid=2197479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6951167296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue from Contract with Customer [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 0; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Revenue Recognition</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt">The Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">606</div> which include (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div>) identifying the contract with a customer, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div>) identifying separate performance obligations within the contract, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div>) determining the transaction price, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4</div>) allocating the transaction price to the performance obligations, and (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery primarily upon customer acceptance, except for certain tooling where control does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> transfer to the customer, which results in revenue being recognized over the estimated time for which parts are produced with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the good and are expensed when revenue is recognized.&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Disaggregated Revenue</div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">The following table presents the Company&#x2019;s revenue disaggregated by the major types of goods and services sold to the Company&#x2019;s customers (in thousands):</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid">Net sales of:</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Products</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50,576</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47,102</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">96,984</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">89,246</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Tooling and Machinery</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">323</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,107</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">969</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,598</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Engineering services</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">500</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">810</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">773</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,105</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total net sales</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">51,399</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">98,726</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">91,949</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Contract balances</div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">Timing of revenue recognition <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has deferred revenue, or contract liabilities, included within &#x201c;deferred revenue&#x201d; on the condensed consolidated balance sheet.</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">The following table presents opening and closing balances of contract liabilities for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">30,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> (in thousands):</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Liabilities</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended<br /> June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt">Deferred revenue - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,507</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">871</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Acquired in Dielectrics business combination</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,175</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Increases due to consideration received from customers</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,541</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,855</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Revenue recognized</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,097</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,570</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Deferred revenue - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,951</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,331</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt; color: windowtext"></div></div> <div style=" margin: 0; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">Revenue recognized during the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> from amounts included in deferred revenue at the beginning of the period were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$613</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$437</div> thousand, respectively.</div> <div style=" margin: 0; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 8; Value: 3 -->   <!-- Field: /Page --> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">When invoicing occurs after revenue recognition, the Company has unbilled receivables (contract assets) included within &#x201c;receivables&#x201d; on the condensed consolidated balance sheet.</div> <div style=" margin: 0; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">The following table presents opening and closing balances of contract assets for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">30,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> (in thousands):</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Assets</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended<br /> June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt">Unbilled Receivables - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Decreases due to customer invoicing</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(314</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Increases due to revenue recognized - not invoiced to customers</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">280</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">236</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Unbilled Receivables - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">236</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table>  </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775192672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock', window );">Cash Flow, Supplemental Disclosures [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 0; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Supplemental Cash Flow Information</div></div></td> </tr>  </table> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; text-align: center">(in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for:</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 20pt">Interest</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">268</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">668</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Income taxes, net of refunds</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">382</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">784</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Non-cash investing and financing activities:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Capital additions accrued but not yet paid</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">281</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">331</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Recognition of lease asset and liability (ASC 842)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,831</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -URI http://asc.fasb.org/topic&amp;trid=2134446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashFlowSupplementalDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768112768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Fair Value of Financial Instruments<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Disclosures [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Fair Value of Financial Instruments</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">820,</div> <div style="display: inline; font-style: italic;">Fair Value Measurements and Disclosures</div>, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div></div></div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt">Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.</div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div></div></div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt">Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life.</div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div></div></div> <div style=" margin: 0 0 0 45.35pt; font-size: 10pt">Valued based on management&#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The following table presents the fair value and hierarchy levels, for financial assets that are measured at fair value on a recurring basis (in thousands):</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 9; Value: 3 -->   <!-- Field: /Page --> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; text-decoration: underline;">Level 2</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br /> 2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,<br /> 2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">(Liabilities) Assets:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 10pt">Derivative financial instruments</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(373</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">)</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">64</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Derivative financial instruments consist of an interest rate swap for which fair value is determined through the use of a pricing model that utilizes verifiable inputs such as market interest rates that are observable at commonly quoted intervals for the full term of the swap agreement.</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company</div>.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6646918720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Share-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Share-based Payment Arrangement [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Share-Based Compensation</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018. </div>The compensation cost charged against income for those plans is included in selling, general &amp; administrative expenses as follows (in thousands):</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Share-based compensation related to:</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Common stock grants</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">205</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">200</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">305</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Stock option grants</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">118</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">32</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">134</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit Awards ("RSUs")</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">277</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">130</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">464</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">252</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total share-based compensation</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">401</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">453</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">696</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">691</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">The total income tax benefit recognized in the condensed consolidated statements of income for share-based compensation arrangements was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$188</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$155</div> thousand for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-month periods ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div></div>, respectively, and approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$348</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$356</div> thousand for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">30,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div></div>, respectively.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 27.9pt 0 27pt; font-size: 10pt">The following is a summary of stock option activity under all plans for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month period ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">30</div><div style="display: inline; color: windowtext">, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div></div>:</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares Under<br /> Options</td> <td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted <br /> Average <br /> Exercise Price <br /> </div><div style="display: inline; font-size: 10pt; font-style: normal">(per share)</div></td> <td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"><div style="display: inline; font-weight: bold;">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted <br /> Average <br /> Remaining<br /> Contractual <br /> Life <br /> </div><div style="display: inline; font-size: 10pt; font-style: normal">(in years)</div></td> <td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"><div style="display: inline; font-weight: bold;">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Aggregate <br /> Intrinsic <br /> Value <div style="display: inline; font-size: 10pt; font-style: normal"><br /> </div></div><div style="display: inline; font-size: 10pt">(in thousands)</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Outstanding at December 31, 2018</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">134,043</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20.46</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-decoration: line-through"></td> <td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"></td> <td style="width: 10%; font-size: 10pt; text-decoration: line-through; text-align: right"></td> <td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Granted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt"></td> <td style="font-size: 10pt; text-align: left"></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Exercised</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(31,058</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14.18</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Outstanding at June 30, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">119,521</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.61</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.68</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,032</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Exercisable at June 30, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">95,485</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21.86</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.12</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,886</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Vested and expected to vest at June 30, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">119,521</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.61</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.68</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,032</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 10; Value: 3 -->   <!-- Field: /Page --> <div style=" margin: 0 0 0 27pt; font-size: 10pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 5, 2019, </div>the Company granted options to its directors for the purchase of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">210,000</div> shares of common stock at that day&#x2019;s closing price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$38.61.</div> The compensation expense related to these grants was determined as the fair value of the options using the Black-Scholes option pricing model based on the following assumptions:</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table border="0" cellpadding="0" cellspacing="0" style="; border-collapse: collapse; font-size: 10pt; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%">Expected volatility</td> <td style="text-align: left; width: 30%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.9%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Expected dividends</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Risk-free interest rate</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.3%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Exercise price</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$38.61</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Expected term</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0 years</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Weighted-average grant date fair value</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$12.70</div></td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-size: 10pt; color: windowtext"></div></div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The stock volatility for each grant is determined based on a review of the experience of the weighted average of historical daily price changes of the Company&#x2019;s common stock over the expected option term, and the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding with the expected term of the option. The expected term is estimated based on historical option exercise activity.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">During the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the total intrinsic value of all options exercised (i.e., the difference between the market price on the exercise date and the price paid by the employees to exercise the options) was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$628</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.0</div> million, respectively, and the total amount of consideration received by the Company from the exercised options was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$440</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$965</div> thousand, respectively. At its discretion, the Company allows option holders to surrender previously-owned common stock in lieu of paying the exercise price and withholding taxes. During the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> shares were surrendered for this purpose.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 19, 2019, </div>the Company&#x2019;s Compensation Committee approved </div><div style="display: inline; color: black">the award of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$400</div> thousand, payable in shares of common stock to the Company&#x2019;s Chairman, Chief Executive Officer, and President under the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2003</div> </div><div style="display: inline; color: windowtext">Incentive Plan, subject to his continued employment and the terms of his employment agreement. The shares will be issued in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 2019. </div></div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The following table summarizes information about RSU activity during the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month period ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019:</div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td colspan="2" style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted <br /> Stock Units</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Weighted Average<br /> Award Date<br /> Fair Value</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 73%; font-size: 10pt; text-align: left">Outstanding at December 31, 2018</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72,176</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.60</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Awarded</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">67,152</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33.50</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Shares vested</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(19,860</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.53</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Outstanding at June 30, 2019</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">119,468</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.64</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">At the Company&#x2019;s discretion, RSU holders are given the option to net-share settle to cover the required minimum withholding tax and the remaining amount is converted into the equivalent number of common shares. During the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,132</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,238</div> shares were surrendered at an average market price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$33.35</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$27.60,</div> respectively.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019, </div>the Company had approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$3.2</div> million of unrecognized compensation expense that is expected to be recognized over a period of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3.8</div> years</div>.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6710321728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Inventories<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventory Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Inventories</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Inventories are stated at the lower of cost (determined using the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-in, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-out method) or net realizable value, and consist of the following at the stated dates (in thousands):</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 11; Value: 3 -->   <!-- Field: /Page --> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br /> 2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31, <br /> 2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt; text-align: left">Raw materials</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,168</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,727</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Work in process</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,837</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,521</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Finished goods</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,033</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,328</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Total inventory</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,038</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,576</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664510832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Leases<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Lessee, Operating Leases [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Leases</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The Company adopted ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> - <div style="display: inline; font-style: italic;">Leases</div> (&#x201c;ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842&#x201d;</div>) as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019, </div>using the transition method wherein entities could initially apply the new leases standard at adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption. Accordingly, all periods prior to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019 </div>were presented in accordance with the previous ASC Topic <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">840,</div> Leases, and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> retrospective adjustments were made to the comparative periods presented.&nbsp;The adoption of ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> resulted in an increase to total assets due to the recording of operating lease right-of-use ("ROU") assets and operating lease liabilities of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$4.0</div>&nbsp;million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$4.1</div> million, respectively, as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019.&nbsp; </div>The Company did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> have any finance leases at the adoption date. The adoption did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> materially impact the Company&#x2019;s condensed consolidated statements of income or cash flows.</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The Company has operating leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12</div> months or less are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> recorded on the balance sheet. The Company has elected the practical expedient to account for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. The Company also elected the package of practical expedients permitted within the new standard, which among other things, allows the Company to carry forward historical lease classification. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> included in the ROU assets or operating lease liabilities.&nbsp;These are expensed as incurred and recorded as variable lease expense.&nbsp;The Company determines if an arrangement is a lease at the inception of a contract. Operating lease ROU assets and operating lease liabilities are stated separately in the condensed consolidated balance sheet.&nbsp;</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">ROU assets represent the Company's right to use an underlying asset during the lease term and operating lease liabilities represent the Company's obligation to make lease payments arising from the lease.&nbsp;ROU assets and operating lease liabilities are&nbsp;recognized at commencement date based on the net present value of fixed lease payments over the lease term.&nbsp;The Company's lease term&nbsp;includes&nbsp;options to extend or terminate the lease when it is reasonably certain that we will exercise that option.&nbsp;ROU assets will also be adjusted for any deferred or accrued rent. As the Company's&nbsp;operating leases do <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> typically provide an implicit rate,&nbsp;the Company uses&nbsp;its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&nbsp;Operating fixed lease expense is recognized on a straight-line basis over the lease term.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div><div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">June 30, 2019</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">($ in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Lease Cost:</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 87%; font-size: 10pt; padding-left: 10pt">Operating</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">613</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-left: 10pt">Variable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">111</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt">Short-term</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total lease cost</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">737</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for amounts included in measurement of&nbsp;&nbsp;lease liabilities:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">604</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average remaining lease term (years):</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3.15</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average discount rate:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.45</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td colspan="5" style="font-size: 10pt">The aggregate future lease payments for operating leases as of June 30, 2019 were as follows (in thousands):</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Remainder of:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">593</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,143</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,121</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">957</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">35</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Thereafter</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total lease payments</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,849</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Less: Interest</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(267</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Present value of lease liabilities</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,582</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td colspan="5" style="font-size: 10pt">The aggregate future lease payments for operating leases as of December 31, 2018 were as follows (in thousands):</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,051</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,070</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,063</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">975</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">36</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Total&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,195</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664542176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Income Per Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings Per Share [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Income Per Share</div></div></td> </tr>  </table> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The weighted average number of shares used to compute basic and diluted net income per share consisted of the following (in thousands):</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 13; Value: 3 --> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Basic weighted average common shares outstanding</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,423</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,347</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,413</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,336</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt; text-indent: -10pt">Weighted average common equivalent shares due to stock, stock options and RSUs</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">44</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">66</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">60</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Diluted weighted average common shares outstanding</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,467</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,413</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,473</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,408</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> included in the computation of diluted income per share because the effect would be antidilutive. For both the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019</div></div>, the number of stock awards excluded from the computation of diluted earnings per share for this reason was <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536</div>.</div> For the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">30,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div></div>, the number of stock awards excluded from the computation of diluted earnings per share for this reason was <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24,280</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25,344,</div> respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6651174736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Segment Reporting<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment Reporting Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Segment Reporting</div></div></td> </tr>  </table> <div style=" font-size: 10pt; margin: 0 0 0 27pt; text-indent: 0in">The Company consists of a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">single</div></div> operating and reportable segment.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Revenues from customers outside of the United States are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> material. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> customer comprised more than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10%</div> of the Company&#x2019;s consolidated revenues for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018.</div> All of the Company&#x2019;s assets are located in the United States.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">The Company&#x2019;s products are primarily sold to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Net sales by market for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> are as follows (in thousands)</div>:</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Market</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 20%; font-size: 10pt">Medical</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33,045</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">64.3</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29,227</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">59.6</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">61,989</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">62.8</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">53,365</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">58.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Automotive</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,950</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9.6</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,065</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,688</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.8</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,421</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Consumer</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,667</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9.1</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,777</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.8</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9,092</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9.2</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,237</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.2</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Aerospace &amp; Defense</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,115</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8.0</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,080</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,646</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7.7</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,567</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.1</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Industrial</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,326</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.5</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,902</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.9</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,811</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.9</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,519</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt">Electronics</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,296</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.5</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,968</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.1</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,500</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.6</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,840</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.4</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Net Sales</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">51,399</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">98,726</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">91,949</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0 95.4pt 0 0.5in; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 95.4pt 0 0.5in; font-size: 10pt">Certain amounts for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div> months ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2018 </div>were reclassified between markets to conform to the current period presentation.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI http://asc.fasb.org/topic&amp;trid=2134510<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768137408">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Other Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Other Intangible Assets</div></div></td> </tr>  </table> <div style=""></div> <div style=" font-size: 10pt; margin: 0; text-indent: 0in"><div style="display: inline; font-weight: bold;"></div></div> <div style=" font-size: 10pt; margin: 0; text-indent: 0in"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">The carrying values of the Company&#x2019;s definite lived intangible assets as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>are as follows (in&nbsp;thousands):</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0 0 0 27.35pt"></div> <!-- Field: Page; Sequence: 14; Value: 3 --> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename <br /> &amp; Brand</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br /> Compete</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br /> List</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">Estimated useful life</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,384</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(52</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(131</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,598</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,781</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Net balance</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">315</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">331</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,957</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,603</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">Amortization expense related to intangible assets was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$314</div></div> thousand for both the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$628</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$524</div> thousand for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> respectively. The estimated remaining amortization expense as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>is as follows (in thousands):</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 0.75in; font-size: 10pt; text-indent: -0.35pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 40pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">Remainder of:</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 77%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 20%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">628</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,172</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Thereafter</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,032</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Total</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,603</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI http://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6951195504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Income Taxes<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Tax Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Income Taxes</div></div></td> </tr>  </table> <div style=" font-size: 10pt; margin: 0; text-indent: 0in"><div style="display: inline; font-weight: bold;"></div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">The income tax expense included in the accompanying unaudited condensed consolidated statements of income principally relates to the Company&#x2019;s proportionate share of the pre-tax income of its wholly-owned subsidiaries. The determination of income tax expense for interim reporting purposes is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. <div style="display: inline; color: windowtext">The Company recorded tax expense of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25.6%</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.4%</div> of income before income tax expense for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> respectively. The Company recorded tax expense of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.0%</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.5%</div> of income before income tax expense, for each of the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> respectively. </div></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664631184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Indebtedness<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Debt Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;"> Indebtedness</div></div></td> </tr>  </table> <div style=" font-size: 10pt; margin: 0; text-indent: 0in"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 1, 2018, </div>the Company, as the borrower, entered into an unsecured <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$70</div> million Amended and Restated Credit Agreement (the &#x201c;Amended and Restated Credit Agreement&#x201d;) with certain of the Company&#x2019;s subsidiaries (the &#x201c;Subsidiary Guarantors&#x201d;) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit Agreement amends and restates the Company&#x2019;s prior credit agreement.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The credit facilities under the Amended and Restated Credit Agreement (the &#x201c;Amended and Restated Credit Facilities&#x201d;) consist of a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$20</div> million unsecured term loan and an unsecured revolving credit facility, under which the Company <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>borrow up to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$50</div> million.&nbsp; The Amended and Restated Credit Agreement matures on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 1, 2023.&nbsp; </div>The proceeds borrowed pursuant to the Amended and Restated Credit Agreement <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be used for general corporate purposes, as well as permitted acquisitions. The Company&#x2019;s obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The Amended and Restated Credit Agreement calls for interest of LIBOR plus a margin that ranges from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.0%</div> to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.5%</div> or, at the discretion of the Company, the bank&#x2019;s prime rate less a margin that ranges from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.25%</div> to zero. In both cases the applicable margin is dependent upon Company performance.&nbsp; Under the Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant.&nbsp; The Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness and permitted investments.&nbsp;As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019, </div>there were <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.7</div> </div>million in standby letters of credit outstanding drawable as a financial guarantee on worker&#x2019;s compensation insurance policies. As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019, </div>the applicable interest rate was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3.4%,</div> and the Company was in compliance with all covenants under the Amended and Restated Credit Agreement.</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 15; Value: 3 -->   <!-- Field: /Page --> <div style=" margin: 0 0 0 27.35pt; font-size: 10pt">Long-term debt consists of the following (in thousands):</div> <div style=" font-size: 10pt; margin: 0 0 0 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0 0 0 27.35pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30, <br /> 2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,<br /> 2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt; text-align: left">Revolving credit facility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,428</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,143</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total long-term debt</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,428</div></td> <td style="font-size: 10pt; text-align: left"></td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25,143</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Current portion</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,571</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,857</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Long-term debt, excluding current portion</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,857</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"></td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,286</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" font-size: 10pt; margin: 0 0 0 27.35pt"></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Derivative Financial Instruments</div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">The Company uses interest-rate-related derivative instruments to manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> enter into derivative instruments for any purpose other than cash flow hedging. The Company does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> speculate using derivative instruments. By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself to credit risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When the fair value of a derivative contract is positive, the counterparty owes the Company, which creates credit risk for the Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> exposed to the counterparty&#x2019;s credit risk. The Company minimizes counterparty credit risk in derivative instruments by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk is the adverse effect on the value of a derivative instrument that results from a change in interest rates. The market risk associated with interest-rate contracts is managed by establishing and monitoring parameters that limit the types and degree of market risk that <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be undertaken. The Company assesses interest rate risk by continually identifying and monitoring changes in interest rate exposures that <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&#x2019;s debt obligations expose the Company to variability in interest payments due to changes in interest rates. The Company believes that it is prudent to limit the variability of a portion of its interest payments. To meet this objective, </div>in connection with the Amended and Restated Credit Agreement, the Company entered into a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$20</div>&nbsp;million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>-year interest rate swap agreement under which the Company receives <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-month LIBOR plus the applicable margin and pays a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7%</div> fixed rate plus the applicable margin. The swap modifies the Company&#x2019;s interest rate exposure by converting the term loan from a variable rate to a fixed rate to hedge against the possibility of rising interest rates during the term of the loan. The notional amount was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$15.7</div> million at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019. </div>The fair value of the swap as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>was approximately $(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">373</div>) thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$64</div> thousand, respectively, and are included in other liabilities and other assets on the condensed consolidated balance sheets, respectively. Changes in the fair value of the swap are recorded in other expense (income) on the condensed consolidated statements of income and were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$198</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$437</div> thousand during the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>- and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-months ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2019, </div>and $(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div>) thousand and $(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">53</div>) thousand, respectively during the same periods in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018.</div></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -URI http://asc.fasb.org/topic&amp;trid=2208564<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775275648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Acquisition<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Business Combination Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0; margin-bottom: 12pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Acquisition</div></div></td> </tr>  </table> <div style=" font-size: 10pt; margin: 0; text-indent: 0in"></div> <div style=" margin: 0; font-size: 10pt; text-indent: 27pt"></div> <div style=" font-size: 10pt; margin: 0 0 0 27pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 1, 2018 </div>the Company purchased <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100%</div> of the outstanding shares of common stock of Dielectrics Inc., pursuant to a stock purchase agreement and related agreements, for an aggregate purchase price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$80</div>&nbsp;million in cash. The purchase price was subject to adjustment based upon Dielectrics&#x2019; working capital at closing. An additional <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$250</div> thousand of consideration was paid by the Company as a result of the final working capital adjustment. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses and liabilities. The Purchase Agreement contains customary representations, warranties and covenants customary for transactions of this type.</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 16; Value: 3 -->  <!-- Field: /Page --> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Founded in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1954</div> and based in Chicopee, Massachusetts, Dielectrics is a leader in the design, development, and manufacture of medical devices using thermoplastic materials. They primarily use radio frequency and impulse welding to design and manufacture solutions for the medical industry. In addition to the long-standing customer relationships, they bring to the Company a seasoned management team and a profitable book of business. The Company has leased the Chicopee location from a realty trust owned by the selling shareholder and affiliates. The lease is for <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">five</div> years with <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">two five</div>-year renewal options.</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management&#x2019;s estimates of fair value (in thousands):</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 63pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 47pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">Consideration Paid:</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; font-size: 10pt; text-align: left; padding-left: 10pt">Cash paid at closing</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">80,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Working capital adjustment</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">250</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Cash from Dielectrics</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,272</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Total consideration</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Purchase Price Allocation:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts receivable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,384</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 10pt">Inventory</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,418</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Other current assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">122</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Property, plant and equipment</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,600</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Customer list</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 10pt">Non-compete</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Trade name and brand</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt">Goodwill</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">44,516</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total identifiable assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">81,424</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts payable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,325</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accrued expenses</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(946</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Deferred revenue</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,175</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Net Assets acquired</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0 0 0 63pt; font-size: 10pt"><div style="display: inline; font-size: 10pt; color: windowtext"></div></div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">Acquisition costs associated with the transaction were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.1</div></div> million and were charged to expense in the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month period ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2018. </div>These costs were primarily for investment banking and legal fees and are reflected on the face of the income statement.</div> <div style=" margin: 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The following table contains an unaudited pro forma condensed consolidated statement of operations for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div>-month periods ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2018, </div>as if the Dielectrics acquisition had occurred at the beginning of the respective periods (in thousands):</div> <div style=" margin: 0 0 0 0.5in; font-size: 10pt">&nbsp;</div> <div style=" margin: 0; font-size: 10pt; text-indent: 1in"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended<br /> June 30,</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended<br /> June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: center">(Unaudited)</td> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; text-align: center">(Unaudited)</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; font-size: 10pt">Sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">95,004</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Operating Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,669</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,084</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Net Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,990</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,566</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Earnings per share:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 10pt">Basic</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.76</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-left: 10pt">Diluted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.75</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0; font-size: 10pt; text-indent: 1in"><div style="display: inline; font-size: 10pt; color: windowtext"></div></div> <div style=" margin: 0 0 0 0.5in; font-size: 10pt">&nbsp;</div> <div style=" margin: 0 0 0 27pt; font-size: 10pt">The above unaudited pro forma information is presented for illustrative purposes only and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be indicative of the results of operations that would have actually occurred had the Dielectrics acquisition occurred as presented. In addition, future results <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>vary significantly from the results reflected in such pro forma information.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI http://asc.fasb.org/topic&amp;trid=2303972<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6951161824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Accounting Pronouncements, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Recent Accounting Pronouncements</div></div> <div style=" margin: 0 0 0 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; background-color: white">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 2016, </div>the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU)&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div>&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2016</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">02,</div>&nbsp;&#x201c;<div style="display: inline; font-style: italic;">Leases (Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div>),</div>&#x201d; and issued subsequent amendments to the initial guidance in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2018 </div>within ASU&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div>&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">01</div>&nbsp;and in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> July 2018 </div>within ASU Nos.&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div>&nbsp;and&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.</div> </div>The Company adopted ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019. </div>See Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div> for further details.</div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; background-color: white">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2017, </div>the FASB issued ASU&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div>&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">04,</div>&nbsp;<div style="display: inline; font-style: italic;">Intangibles&#x2014;Goodwill and Other (ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">350</div>), Simplifying the Test for Goodwill Impairment</div>. The guidance removes Step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div> of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&#x2019;s carrying value exceeds its fair value, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019.</div> Early adoption is permitted for any impairment tests performed on testing dates after <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017.</div> The Company does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> believe adoption will have a material impact on its financial condition or results of operations.</div></div></div></div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevisionsPolicyPolicyTextBlock', window );">Revisions Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Revisions</div></div> <div style=" margin: 0 0 12pt 27.35pt; font-size: 10pt">Certain revisions have been made to the Condensed Consolidated Statements of Cash Flows for the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">six</div> months ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 30, 2018, </div>due to a reclassification of deferred <div style="display: inline; color: windowtext">revenue. The reclassification resulted in a decrease to the change in deferred revenue and a decrease in the change in accrued expenses in the amount of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$573</div></div> thousand. These revisions had <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> impact on previously reported net income and are deemed immaterial to the previously issued financial statements.</div></div></div></div></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_RevisionsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revisions to financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_RevisionsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664910832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid">Net sales of:</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Products</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50,576</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47,102</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">96,984</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">89,246</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Tooling and Machinery</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">323</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,107</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">969</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,598</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Engineering services</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">500</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">810</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">773</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,105</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total net sales</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">51,399</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">98,726</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">91,949</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Asset and Liability [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Liabilities</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended<br /> June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt">Deferred revenue - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,507</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">871</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Acquired in Dielectrics business combination</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,175</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Increases due to consideration received from customers</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,541</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,855</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Revenue recognized</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,097</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,570</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Deferred revenue - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,951</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,331</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Assets</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended<br /> June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; text-align: center">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt">Unbilled Receivables - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Decreases due to customer invoicing</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(314</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Increases due to revenue recognized - not invoiced to customers</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">280</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">236</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Unbilled Receivables - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">236</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of contract balances and changes in contract balances.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6660702048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock', window );">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; text-align: center">(in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for:</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 20pt">Interest</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">268</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">668</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Income taxes, net of refunds</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">382</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">784</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Non-cash investing and financing activities:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Capital additions accrued but not yet paid</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">281</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">331</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 20pt">Recognition of lease asset and liability (ASC 842)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,831</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental cash flow information for the periods presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6710496832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Fair Value of Financial Instruments (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock', window );">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; text-decoration: underline;">Level 2</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br /> 2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,<br /> 2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">(Liabilities) Assets:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; font-size: 10pt; text-align: left; padding-left: 10pt">Derivative financial instruments</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(373</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">)</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">64</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768104800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Share-Based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock', window );">Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Share-based compensation related to:</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Common stock grants</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">205</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">200</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">305</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Stock option grants</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">118</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">32</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">134</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit Awards ("RSUs")</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">277</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">130</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">464</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">252</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total share-based compensation</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">401</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">453</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">696</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">691</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Share-based Payment Arrangement, Option, Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares Under<br /> Options</td> <td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted <br /> Average <br /> Exercise Price <br /> </div><div style="display: inline; font-size: 10pt; font-style: normal">(per share)</div></td> <td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"><div style="display: inline; font-weight: bold;">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted <br /> Average <br /> Remaining<br /> Contractual <br /> Life <br /> </div><div style="display: inline; font-size: 10pt; font-style: normal">(in years)</div></td> <td style="font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"><div style="display: inline; font-weight: bold;">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Aggregate <br /> Intrinsic <br /> Value <div style="display: inline; font-size: 10pt; font-style: normal"><br /> </div></div><div style="display: inline; font-size: 10pt">(in thousands)</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Outstanding at December 31, 2018</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">134,043</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20.46</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-decoration: line-through"></td> <td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"></td> <td style="width: 10%; font-size: 10pt; text-decoration: line-through; text-align: right"></td> <td style="width: 1%; font-size: 10pt; text-decoration: line-through; text-align: left"></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Granted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt"></td> <td style="font-size: 10pt; text-align: left"></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Exercised</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(31,058</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14.18</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Outstanding at June 30, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">119,521</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.61</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.68</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,032</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Exercisable at June 30, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">95,485</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21.86</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.12</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,886</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Vested and expected to vest at June 30, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">119,521</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24.61</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.68</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,032</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table border="0" cellpadding="0" cellspacing="0" style="; border-collapse: collapse; font-size: 10pt; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%">Expected volatility</td> <td style="text-align: left; width: 30%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.9%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Expected dividends</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Risk-free interest rate</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.3%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Exercise price</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$38.61</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Expected term</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0 years</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Weighted-average grant date fair value</td> <td style="text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$12.70</div></td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock', window );">Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td colspan="2" style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted <br /> Stock Units</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Weighted Average<br /> Award Date<br /> Fair Value</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 73%; font-size: 10pt; text-align: left">Outstanding at December 31, 2018</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72,176</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.60</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Awarded</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">67,152</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33.50</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Shares vested</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(19,860</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.53</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Outstanding at June 30, 2019</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">119,468</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.64</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed. The amounts are aggregated by award type.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775233264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Schedule of Inventory, Current [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,<br /> 2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31, <br /> 2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt; text-align: left">Raw materials</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,168</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,727</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Work in process</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,837</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,521</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Finished goods</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,033</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,328</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Total inventory</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,038</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,576</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6785216224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Lease, Cost [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">June 30, 2019</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">($ in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Lease Cost:</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 87%; font-size: 10pt; padding-left: 10pt">Operating</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">613</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-left: 10pt">Variable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">111</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt">Short-term</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Total lease cost</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">737</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for amounts included in measurement of&nbsp;&nbsp;lease liabilities:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">604</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average remaining lease term (years):</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3.15</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average discount rate:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt; padding-left: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.45</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td colspan="5" style="font-size: 10pt">The aggregate future lease payments for operating leases as of June 30, 2019 were as follows (in thousands):</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Remainder of:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">593</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,143</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,121</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">957</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">35</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Thereafter</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total lease payments</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,849</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Less: Interest</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(267</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Present value of lease liabilities</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,582</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock', window );">Schedule of Future Minimum Rental Payments for Operating Leases [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td colspan="5" style="font-size: 10pt">The aggregate future lease payments for operating leases as of December 31, 2018 were as follows (in thousands):</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,051</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,070</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,063</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">975</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">36</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Total&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,195</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of future minimum payments required in the aggregate and for each of the five succeeding fiscal years for operating leases having initial or remaining noncancelable lease terms in excess of one year and the total minimum rentals to be received in the future under noncancelable subleases as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6951271504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Income Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Schedule of Weighted Average Number of Shares [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Basic weighted average common shares outstanding</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,423</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,347</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,413</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,336</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt; text-indent: -10pt">Weighted average common equivalent shares due to stock, stock options and RSUs</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">44</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">66</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">60</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.25pt">Diluted weighted average common shares outstanding</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,467</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,413</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,473</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,408</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664528064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Segment Reporting (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock', window );">Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended June 30,</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Six Months Ended June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Market</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Net Sales</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">%</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 20%; font-size: 10pt">Medical</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33,045</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">64.3</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29,227</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">59.6</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">61,989</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">62.8</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">53,365</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 7%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">58.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Automotive</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,950</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9.6</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,065</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,688</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.8</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,421</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Consumer</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,667</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9.1</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,777</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.8</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9,092</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9.2</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,237</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.2</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Aerospace &amp; Defense</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,115</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8.0</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,080</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,646</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7.7</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,567</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.1</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Industrial</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,326</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.5</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,902</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.9</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,811</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.9</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,519</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></td> <td style="font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt">Electronics</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,296</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.5</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,968</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.1</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,500</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.6</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,840</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.4</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt; padding-left: 10pt">Net Sales</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">51,399</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">98,726</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">91,949</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">%</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6604903584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Other Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename <br /> &amp; Brand</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br /> Compete</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br /> List</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">Estimated useful life</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,384</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(52</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(131</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,598</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,781</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Net balance</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">315</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">331</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,957</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,603</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 40pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">Remainder of:</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 77%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 20%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">628</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,172</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Thereafter</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,032</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Total</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,603</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775195568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Indebtedness (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDebtInstrumentsTextBlock', window );">Schedule of Long-term Debt Instruments [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">June 30, <br /> 2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,<br /> 2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; font-size: 10pt; text-align: left">Revolving credit facility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,428</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,143</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total long-term debt</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,428</div></td> <td style="font-size: 10pt; text-align: left"></td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25,143</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Current portion</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,571</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,857</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Long-term debt, excluding current portion</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,857</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left"></td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,286</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDebtInstrumentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of long-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 entity, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1A<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28541-108399<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21506-112644<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(e),(f))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28551-108399<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21521-112644<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21538-112644<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 470<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=75038535&amp;loc=d3e64711-112823<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21475-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDebtInstrumentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775233264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Acquisition (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock', window );">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 47pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">Consideration Paid:</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; font-size: 10pt; text-align: left; padding-left: 10pt">Cash paid at closing</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">80,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Working capital adjustment</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">250</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Cash from Dielectrics</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,272</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Total consideration</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Purchase Price Allocation:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts receivable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,384</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 10pt">Inventory</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,418</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Other current assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">122</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Property, plant and equipment</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,600</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Customer list</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 10pt">Non-compete</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Trade name and brand</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 10pt">Goodwill</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">44,516</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total identifiable assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">81,424</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accounts payable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,325</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-left: 10pt">Accrued expenses</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(946</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; padding-left: 10pt">Deferred revenue</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,175</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.25pt">Net Assets acquired</td> <td style="font-size: 10pt; padding-bottom: 2.25pt">&nbsp;</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></td> <td style="border-bottom: Black 2.25pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock', window );">Business Acquisition, Pro Forma Information [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 27pt; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended<br /> June 30,</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Six Months Ended<br /> June 30,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: center">(Unaudited)</td> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; text-align: center">(Unaudited)</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; font-size: 10pt">Sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">95,004</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Operating Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,669</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,084</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Net Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,990</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,566</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Earnings per share:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 10pt">Basic</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.76</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-left: 10pt">Diluted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.75</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768280704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Basis of Presentation (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Increase (Decrease) in Contract with Customer, Liability</a></td>
<td class="nump">$ 444<span></span>
</td>
<td class="nump">$ 286<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Increase (Decrease) in Accrued Liabilities, Total</a></td>
<td class="nump">$ 30<span></span>
</td>
<td class="num">(1,005)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RestatementAxis=srt_RestatementAdjustmentMember', window );">Restatement Adjustment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Increase (Decrease) in Contract with Customer, Liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(573)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Increase (Decrease) in Accrued Liabilities, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (573)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RestatementAxis=srt_RestatementAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RestatementAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6642659392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Contract with Customer, Liability, Revenue Recognized</a></td>
<td class="nump">$ 1,097<span></span>
</td>
<td class="nump">$ 1,570<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByAssetClassAxis=ufpt_DeferredRevenueMember', window );">Deferred Revenue [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Contract with Customer, Liability, Revenue Recognized</a></td>
<td class="nump">$ 613<span></span>
</td>
<td class="nump">$ 437<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByAssetClassAxis=ufpt_DeferredRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByAssetClassAxis=ufpt_DeferredRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6773508960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 51,399<span></span>
</td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 98,726<span></span>
</td>
<td class="nump">$ 91,949<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">50,576<span></span>
</td>
<td class="nump">47,102<span></span>
</td>
<td class="nump">96,984<span></span>
</td>
<td class="nump">89,246<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ufpt_ToolingAndMachineryMember', window );">Tooling and Machinery [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">323<span></span>
</td>
<td class="nump">1,107<span></span>
</td>
<td class="nump">969<span></span>
</td>
<td class="nump">1,598<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ufpt_EngineeringAndDevelopmentMember', window );">Engineering and Development [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 500<span></span>
</td>
<td class="nump">$ 810<span></span>
</td>
<td class="nump">$ 773<span></span>
</td>
<td class="nump">$ 1,105<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ufpt_ToolingAndMachineryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ufpt_ToolingAndMachineryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ufpt_EngineeringAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ufpt_EngineeringAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6782318176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">$ 2,507<span></span>
</td>
<td class="nump">$ 871<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Acquired in Dielectrics business combination</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">2,175<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers', window );">Increases due to consideration received from customers</a></td>
<td class="nump">1,541<span></span>
</td>
<td class="nump">1,855<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue recognized</a></td>
<td class="num">(1,097)<span></span>
</td>
<td class="num">(1,570)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">2,951<span></span>
</td>
<td class="nump">3,331<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Unbilled Receivables - beginning of period</a></td>
<td class="nump">65<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetReclassifiedToReceivable', window );">Decreases due to customer invoicing</a></td>
<td class="num">(314)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized', window );">Increases due to revenue recognized - not invoiced to customers</a></td>
<td class="nump">280<span></span>
</td>
<td class="nump">236<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Unbilled Receivables - end of period</a></td>
<td class="nump">$ 31<span></span>
</td>
<td class="nump">$ 236<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from unbilled revenue recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130533-203044<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetReclassifiedToReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130532-203044<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6710326768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Cash paid for:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest</a></td>
<td class="nump">$ 268<span></span>
</td>
<td class="nump">$ 668<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes, net of refunds</a></td>
<td class="nump">382<span></span>
</td>
<td class="nump">784<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Non-cash investing and financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid', window );">Capital additions accrued but not yet paid</a></td>
<td class="nump">281<span></span>
</td>
<td class="nump">331<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_InitialRecognitionOfLeaseAssetAndLiability', window );">Recognition of lease asset and liability (ASC 842)</a></td>
<td class="nump">$ 3,831<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_InitialRecognitionOfLeaseAssetAndLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The initial recognition of lease asset and liability due to new adoption of new accounting standards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_InitialRecognitionOfLeaseAssetAndLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4332-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4313-108586<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4297-108586<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3367-108585<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768300432">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 4 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>(Liabilities) Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Derivative financial instruments</a></td>
<td class="num">$ (373)<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsFairValueDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsFairValueDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=118260190&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6773063600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Share-Based Compensation (Details Textual) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 05, 2019</div></th>
<th class="th"><div>Feb. 19, 2019</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Mar. 31, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Mar. 31, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation', window );">Adjustments to Additional Paid in Capital, Income Tax Benefit from Share-based Compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 167<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharePrice', window );">Share Price</a></td>
<td class="nump">$ 38.61<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 402<span></span>
</td>
<td class="nump">$ 294<span></span>
</td>
<td class="nump">454<span></span>
</td>
<td class="nump">$ 237<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years 292 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember', window );">The 2003 Incentive Plan [Member] | Chairman Chief Executive Officer and President [Member] | Common Stock [Member] | Forecast [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_TitleOfIndividualAxis=srt_DirectorMember', window );">Director [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures, Total</a></td>
<td class="nump">210,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_StockCompensationPlanMember', window );">Share-based Payment Arrangement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation', window );">Adjustments to Additional Paid in Capital, Income Tax Benefit from Share-based Compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 188<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 155<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 348<span></span>
</td>
<td class="nump">$ 356<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember', window );">Employee and Nonemployee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">628<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from Stock Options Exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 440<span></span>
</td>
<td class="nump">$ 965<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,132<span></span>
</td>
<td class="nump">5,238<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice', window );">Shares Paid for Tax Withholding for Share Based Compensation Market Price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 33.35<span></span>
</td>
<td class="nump">$ 27.60<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the market price per share of shares used by the employees to repay the employer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in additional paid in capital (APIC) resulting from a tax benefit associated with share-based compensation plan other than an employee stock ownership plan (ESOP). Includes, but is not limited to, excess tax benefit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116859624&amp;loc=d3e23524-113945<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Net number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Price of a single share of a number of saleable stocks of a company.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementScenarioAxis=srt_ScenarioForecastMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementScenarioAxis=srt_ScenarioForecastMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_StockCompensationPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_StockCompensationPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6772879168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Share-Based Compensation - Compensation Cost (Details) - Selling, General and Administrative Expenses [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated share based compensation</a></td>
<td class="nump">$ 401<span></span>
</td>
<td class="nump">$ 453<span></span>
</td>
<td class="nump">$ 696<span></span>
</td>
<td class="nump">$ 691<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_CommonStockMember', window );">Common Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated share based compensation</a></td>
<td class="nump">100<span></span>
</td>
<td class="nump">205<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="nump">305<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember', window );">Employee and Nonemployee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated share based compensation</a></td>
<td class="nump">24<span></span>
</td>
<td class="nump">118<span></span>
</td>
<td class="nump">32<span></span>
</td>
<td class="nump">134<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated share based compensation</a></td>
<td class="nump">$ 277<span></span>
</td>
<td class="nump">$ 130<span></span>
</td>
<td class="nump">$ 464<span></span>
</td>
<td class="nump">$ 252<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6786386048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Share-Based Compensation - Summary of Stock Option Activity (Details) - Employee and Nonemployee Stock Option [Member] - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, shares under options (in shares)</a></td>
<td class="nump">134,043<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, weighted average exercise price (in dollars per share)</a></td>
<td class="nump">$ 20.46<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted, shares under options (in shares)</a></td>
<td class="nump">16,536<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted average exercise price (in dollars per share)</a></td>
<td class="nump">$ 38.61<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares under options (in shares)</a></td>
<td class="num">(31,058)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted average exercise price (in dollars per share)</a></td>
<td class="nump">$ 14.18<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, shares under options (in shares)</a></td>
<td class="nump">119,521<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, weighted average exercise price (in dollars per share)</a></td>
<td class="nump">$ 24.61<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, weighted average remaining contractual life (Year)</a></td>
<td class="text">5 years 248 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value</a></td>
<td class="nump">$ 2,032<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, shares under options (in shares)</a></td>
<td class="nump">95,485<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted average exercise price (in dollars per share)</a></td>
<td class="nump">$ 21.86<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted average remaining contractual life (Year)</a></td>
<td class="text">5 years 43 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">$ 1,886<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested and expected to vest, shares under options (in shares)</a></td>
<td class="nump">119,521<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Vested and expected to vest, weighted average exercise price (in dollars per share)</a></td>
<td class="nump">$ 24.61<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested and expected to vest, weighted average remaining contractual life (Year)</a></td>
<td class="text">5 years 248 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested and expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 2,032<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6772964064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Stock-Based Compensation - Black-scholes Option Pricing Model (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 30, 2019 </div>
<div>$ / shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">28.90%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividends</a></td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">2.30%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price (in dollars per share)</a></td>
<td class="nump">$ 38.61<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (Year)</a></td>
<td class="text">6 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant date fair value (in dollars per share)</a></td>
<td class="nump">$ 12.70<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6771046944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Share-Based Compensation - Restricted Stock Unit Activity (Details) - Restricted Stock Units (RSUs) [Member]<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 30, 2019 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Outstanding, restricted stock units (in shares) | shares</a></td>
<td class="nump">72,176<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.60<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Awarded, restricted stock units (in shares) | shares</a></td>
<td class="nump">67,152<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Awarded, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 33.50<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Shares vested, restricted stock units (in shares) | shares</a></td>
<td class="num">(19,860)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Shares vested, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.53<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Outstanding, restricted stock units (in shares) | shares</a></td>
<td class="nump">119,468<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 27.64<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664360672">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 6 - Inventories - Summary of Inventory (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 10,168<span></span>
</td>
<td class="nump">$ 11,727<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work in process</a></td>
<td class="nump">2,837<span></span>
</td>
<td class="nump">2,521<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">6,033<span></span>
</td>
<td class="nump">5,328<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Total inventory</a></td>
<td class="nump">$ 19,038<span></span>
</td>
<td class="nump">$ 19,576<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116846819&amp;loc=d3e3927-108312<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcessNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcessNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6785368112">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Leases (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jan. 01, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="nump">$ 3,531<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<td class="nump">$ 3,582<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Finance Lease, Liability, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6951190432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Leases - Lease Cost (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostAbstract', window );"><strong>Lease Cost:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating</a></td>
<td class="nump">$ 613<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_VariableLeaseCost', window );">Variable</a></td>
<td class="nump">111<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term</a></td>
<td class="nump">13<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Total lease cost</a></td>
<td class="nump">737<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating, cash paid for amounts included in measurement of lease liabilities</a></td>
<td class="nump">$ 604<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating, weighted average remaining lease term (Year)</a></td>
<td class="text">3 years 54 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Operating, weighted-average discount rate</a></td>
<td class="nump">4.45%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term lease cost, excluding expense for lease with term of one month or less.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6664663920">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Leases - Aggregate Future Lease Payments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">2019</a></td>
<td class="nump">$ 593<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2020</a></td>
<td class="nump">1,143<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2021</a></td>
<td class="nump">1,121<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2022</a></td>
<td class="nump">957<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2023</a></td>
<td class="nump">35<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">3,849<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: Interest</a></td>
<td class="num">(267)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Present value of lease liabilities</a></td>
<td class="nump">$ 3,582<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fifth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fifth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fourth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in third fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in second fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease having an initial or remaining lease term in excess of one year due in remainder of fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6787233536">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Leases - Future Minimum Lease Payments For Operating Leases (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent', window );">2019</a></td>
<td class="nump">$ 1,051<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears', window );">2020</a></td>
<td class="nump">1,070<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears', window );">2021</a></td>
<td class="nump">1,063<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears', window );">2022</a></td>
<td class="nump">975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears', window );">2023</a></td>
<td class="nump">36<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDue', window );">Total</a></td>
<td class="nump">$ 4,195<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6951219088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Income Per Share (Details Textual) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</a></td>
<td class="nump">16,536<span></span>
</td>
<td class="nump">24,280<span></span>
</td>
<td class="nump">16,536<span></span>
</td>
<td class="nump">25,344<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768394080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) - shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">7,423<span></span>
</td>
<td class="nump">7,347<span></span>
</td>
<td class="nump">7,413<span></span>
</td>
<td class="nump">7,336<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Weighted average common equivalent shares due to stock, stock options and RSUs (in shares)</a></td>
<td class="nump">44<span></span>
</td>
<td class="nump">66<span></span>
</td>
<td class="nump">60<span></span>
</td>
<td class="nump">72<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted average common shares outstanding (in shares)</a></td>
<td class="nump">7,467<span></span>
</td>
<td class="nump">7,413<span></span>
</td>
<td class="nump">7,473<span></span>
</td>
<td class="nump">7,408<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28A<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1500-109256<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1448-109256<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775223056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Segment Reporting (Details Textual)<br></strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of Reportable Segments</a></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of Operating Segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6771274656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Segment Reporting - Net Sales by Market (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 51,399<span></span>
</td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 98,726<span></span>
</td>
<td class="nump">$ 91,949<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_MedicalMember', window );">Medical [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 33,045<span></span>
</td>
<td class="nump">$ 29,227<span></span>
</td>
<td class="nump">$ 61,989<span></span>
</td>
<td class="nump">$ 53,365<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">64.30%<span></span>
</td>
<td class="nump">59.60%<span></span>
</td>
<td class="nump">62.80%<span></span>
</td>
<td class="nump">58.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_AutomotiveMember', window );">Automotive [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 4,950<span></span>
</td>
<td class="nump">$ 5,065<span></span>
</td>
<td class="nump">$ 10,688<span></span>
</td>
<td class="nump">$ 10,421<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">9.60%<span></span>
</td>
<td class="nump">10.30%<span></span>
</td>
<td class="nump">10.80%<span></span>
</td>
<td class="nump">11.30%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_ConsumerMember', window );">Consumer [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 4,667<span></span>
</td>
<td class="nump">$ 5,777<span></span>
</td>
<td class="nump">$ 9,092<span></span>
</td>
<td class="nump">$ 11,237<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">9.10%<span></span>
</td>
<td class="nump">11.80%<span></span>
</td>
<td class="nump">9.20%<span></span>
</td>
<td class="nump">12.20%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_AerospaceDefenseMember', window );">Aerospace &amp; Defense [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 4,115<span></span>
</td>
<td class="nump">$ 3,080<span></span>
</td>
<td class="nump">$ 7,646<span></span>
</td>
<td class="nump">$ 5,567<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">8.00%<span></span>
</td>
<td class="nump">6.30%<span></span>
</td>
<td class="nump">7.70%<span></span>
</td>
<td class="nump">6.10%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_IndustrialMember', window );">Industrial [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 2,326<span></span>
</td>
<td class="nump">$ 2,902<span></span>
</td>
<td class="nump">$ 4,811<span></span>
</td>
<td class="nump">$ 5,519<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">4.50%<span></span>
</td>
<td class="nump">5.90%<span></span>
</td>
<td class="nump">4.90%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_ElectronicsMember', window );">Electronics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 2,296<span></span>
</td>
<td class="nump">$ 2,968<span></span>
</td>
<td class="nump">$ 4,500<span></span>
</td>
<td class="nump">$ 5,840<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="nump">4.50%<span></span>
</td>
<td class="nump">6.10%<span></span>
</td>
<td class="nump">4.60%<span></span>
</td>
<td class="nump">6.40%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The percentage of revenue, including tax collected from customer, from satisfaction of performance obligation by transferring promised good or service to customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_MedicalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_MedicalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_AutomotiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_AutomotiveMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_ConsumerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_ConsumerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_AerospaceDefenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_AerospaceDefenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_IndustrialMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_IndustrialMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_ElectronicsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_ElectronicsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6775189488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Other Intangible Assets (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of Intangible Assets, Total</a></td>
<td class="nump">$ 314<span></span>
</td>
<td class="nump">$ 314<span></span>
</td>
<td class="nump">$ 628<span></span>
</td>
<td class="nump">$ 524<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6773764320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Other Intangible Assets - Definite-lived Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated useful life (Year)</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 23,384<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(1,781)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">$ 21,603<span></span>
</td>
<td class="nump">$ 22,232<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember', window );">Trade Name and Brand [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated useful life (Year)</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 367<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(52)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">$ 315<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Noncompete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated useful life (Year)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 462<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(131)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">$ 331<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember', window );">Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated useful life (Year)</a></td>
<td class="text">20 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 22,555<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(1,598)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">$ 20,957<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6773282928">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 10 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">2019</a></td>
<td class="nump">$ 628<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2020</a></td>
<td class="nump">1,257<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2021</a></td>
<td class="nump">1,257<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2022</a></td>
<td class="nump">1,257<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2023</a></td>
<td class="nump">1,172<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">16,032<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 21,603<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the remainder of the fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6774026096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Income Taxes (Details Textual)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective Income Tax Rate Reconciliation, Percent, Total</a></td>
<td class="nump">25.60%<span></span>
</td>
<td class="nump">24.40%<span></span>
</td>
<td class="nump">24.00%<span></span>
</td>
<td class="nump">24.50%<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6786026272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Indebtedness (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Feb. 01, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_invest_DerivativeNotionalAmount', window );">Derivative, Notional Amount</a></td>
<td class="nump">$ 20,000<span></span>
</td>
<td class="nump">$ 15,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeTermOfContract', window );">Derivative, Term of Contract</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFixedInterestRate', window );">Derivative, Fixed Interest Rate</a></td>
<td class="nump">2.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap [Member] | Other Nonoperating Income (Expense) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLossOnDerivative', window );">Derivative, Loss on Derivative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">198<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">437<span></span>
</td>
<td class="nump">$ 53<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap [Member] | Other Current Liabilities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeNet', window );">Derivative, Fair Value, Net, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(373)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(373)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt Instrument, Face Amount</a></td>
<td class="nump">$ 70,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage', window );">Debt Instrument, Interest Rate, Effective Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.40%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.40%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | London Interbank Offered Rate (LIBOR) [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">1.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Prime Rate [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">0.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Unsecured Term Loan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt Instrument, Face Amount</a></td>
<td class="nump">$ 20,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Unsecured Revolving Credit Facility [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 50,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Unsecured Revolving Credit Facility [Member] | London Interbank Offered Rate (LIBOR) [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_invest_DerivativeNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate notional amount specified by the derivative(s). Expressed as an absolute value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Article 12<br> -Section 13<br> -Sentence Column B<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">invest_DerivativeNotionalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>invest_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28551-108399<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109500613&amp;loc=SL6036836-161870<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28551-108399<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFairValueOfDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of the assets less the liabilities of a derivative or group of derivatives.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=118260190&amp;loc=d3e13433-108611<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFixedInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fixed interest rate related to the interest rate derivative.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFixedInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLossOnDerivative">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in the fair value of derivatives recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLossOnDerivative</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period the derivative contract is outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_OtherCurrentLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=us-gaap_OtherCurrentLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=ufpt_AmendedAndRestatedCreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ufpt_AmendedAndRestatedCreditAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_PrimeRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_PrimeRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ufpt_UnsecuredTermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ufpt_UnsecuredTermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ufpt_UnsecuredRevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ufpt_UnsecuredRevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=ufpt_UnsecuredRevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ufpt_UnsecuredRevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6710403040">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 12 - Indebtedness - Long-term Debt (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term debt</a></td>
<td class="nump">$ 17,428<span></span>
</td>
<td class="nump">$ 25,143<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current portion</a></td>
<td class="num">(3,571)<span></span>
</td>
<td class="num">(2,857)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt, excluding current portion</a></td>
<td class="nump">13,857<span></span>
</td>
<td class="nump">22,286<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=ufpt_TermLoanMember', window );">Term Loan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term debt</a></td>
<td class="nump">16,428<span></span>
</td>
<td class="nump">17,143<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term debt</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109500613&amp;loc=SL6031897-161870<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ufpt_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ufpt_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6774099952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Acquisition (Details Textual)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Feb. 01, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2018 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, Acquisition Related Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 19<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 1,089<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseArrangementTypeAxis=ufpt_DielectricsMember', window );">Dielectrics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Lessee, Operating Lease, Term of Contract</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_NumberOfLeaseTermOptions', window );">Number of Lease Term Options</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Business Acquisition, Percentage of Voting Interests Acquired</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Payments to Acquire Businesses, Gross</a></td>
<td class="nump">$ 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Business Combination, Consideration Transferred, Working Capital Adjustment</a></td>
<td class="nump">$ 250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, Acquisition Related Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of adjustment to working capital in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_NumberOfLeaseTermOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of lease term options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_NumberOfLeaseTermOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of voting equity interests acquired at the acquisition date in the business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=116868678&amp;loc=d3e1043-128460<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseArrangementTypeAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseArrangementTypeAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6771084464">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 13 - Acquisition - Assets Acquires and Liabilities Assumed (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Feb. 01, 2018</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,838<span></span>
</td>
<td class="nump">$ 51,838<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="nump">$ 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="nump">250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash from Dielectrics</a></td>
<td class="num">(3,272)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total consideration</a></td>
<td class="nump">76,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="nump">4,384<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventory</a></td>
<td class="nump">4,418<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther', window );">Other current assets</a></td>
<td class="nump">122<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant and equipment</a></td>
<td class="nump">4,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">44,516<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill', window );">Total identifiable assets</a></td>
<td class="nump">81,424<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(1,325)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="num">(946)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="num">(2,175)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net Assets acquired</a></td>
<td class="nump">76,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member] | Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">22,555<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member] | Noncompete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">462<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member] | Trade Name and Brand [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">$ 367<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of adjustment to working capital in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of assets acquired, including goodwill at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accrued liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of intangible assets, excluding goodwill, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of inventory recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=116868840&amp;loc=d3e2207-128464<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=116868840&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAcquiredFromAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAcquiredFromAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.19.2</span><table class="report" border="0" cellspacing="2" id="idp6768165488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Acquisition - Pro Forma Information (Unaudited) (Details) - Dielectrics [Member] - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Sales</a></td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 95,004<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax', window );">Operating Income</a></td>
<td class="nump">5,669<span></span>
</td>
<td class="nump">8,084<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net Income</a></td>
<td class="nump">$ 3,990<span></span>
</td>
<td class="nump">$ 5,566<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.76<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.75<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of pro forma income from continuing operations as if the business combination had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>73
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    (  E*"4\?(\\#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+<TXP)6E/S/WJVR;A5ND9T*YKCM+1[873T$7LF<;
M!I99-G\LCNVW<+ZT+/0:S>,*P).B0\5?UX^8 TBTH_0(:+L A#&^NQT:E8(C
M-R."?S]PN -02P,$%     @ "4H)3R?HAPZ"    L0   !    !D;V-0<F]P
M<R]A<' N>&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    "  )2@E/MPI1BN\    K @  $0   &1O8U!R;W!S+V-O
M<F4N>&ULS9)12\,P$,>_BN2]O:1C8D/7%\6G"8(#Q;>0W+9@TX3DI-VWMXU;
MA^@'\#%W__SN=W"-#E+[B,_1!XQD,=V,KNN3U&'#CD1! B1]1*=2.27ZJ;GW
MT2F:GO$ 0>D/=4"H.+\%AZ2,(@4SL @+D;6-T5)'5.3C&6_T@@^?L<LPHP$[
M=-A3 E$*8.T\,9S&KH$K8(811I>^"V@68J[^B<T=8.?DF.R2&H:A'%8Y-^T@
MX.UI^Y+7+6R?2/4:IU_)2CH%W+#+Y-?5_</ND;45%W7![PI>[W@MQ5I6_'UV
M_>%W%7;>V+W]Q\87P;:!7W?1?@%02P,$%     @ "4H)3YE<G",0!@  G"<
M !,   !X;"]T:&5M92]T:&5M93$N>&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T
M$W-I=MNTF83M3A^%$5B-;'EDD81_OT<V$,N6#>V23;J;/ 0LZ?O.14?GZ#AY
M\^XN8NB&B)3R>&#9+]O6N[<OWN!7,B0103 9IZ_PP JE3%ZU6FD PSA]R1,2
MP]R"BPA+>!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 <!.!1NY["G?1LOZ1!";2C:=!DV/;:KI&FJHU33]/W?=_K
MFVB<"HU;3]-K=]W3CHG&K=!X#;[Q3X?#KHG&J]!TZVDF)_VN:Z3I%FA"1N/K
M>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>"(<7<K_WUE[O)
MI#-ZG7TZSFN4?VFK :?MNYO/D_QSZ.2?IY/734+.<+PL"?'[(UMAAR=N.Q-R
M.AQG0GS/]O:1I24RS^_Y"NM./&<?5I:P7<_/Y)Z,<B.[W?98??9/1VXCUZG
MLR+7E$8D19_(+;KD$3BU20TR$S\(G8:8:E < J0),9:AAOBTQJP1X!-]M[X(
MR-^-B/>K;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_BNEVOZ<TT#PE"\D^DJ1
MCVFS(Z=T)LWH,QK!1J\;=8=HTCQZ_@7YG#4*')$;'0)G&[-&(81IN_ >KR2.
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/:'2MS<C?6?!TXM;WD9N6\3[KC':US0N*&-7
M<LW(QU2ODRG8.9_ [/UH/I[Q[?K9)(2OFEDM(Q:02X&S022X_(O*\"K$">AD
M6R4)RU3393>*$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W
M<DOJMI2^M28X2O2QS'!.'LL,.V<\DAVV=Z =-?OV77;D(Z4P4Y=#N!I"O@-M
MNIW<.CB>F)&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<KGHB=OJ7=\%@\OUPR4</Y3OG7_1=0ZY^]MWC^FZ3.TA,G'G%$0%T10(C
ME1P&%A<RY%#NDI &$P'-E,E$\ *"9*8<@)CZ"[WR#+DI%<ZM/CE_12R#ADY>
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.'<YMZN,)%K/]8UA[Y
M,M\Y<-LZW@->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<D05>,9FV-J/D3@H\W/[O#;#"Q([A[8N_
M 5!+ P04    "  )2@E/C[#,OY0"   +"@  &    'AL+W=O<FMS:&5E=',O
M<VAE970Q+GAM;'U6[8Z;,!!\%<0#'-C.YXE$2E)5K=1*T55M?SO$2= !IK83
MKF]?VW"4>I?^"=C,['B].[&S5JI7?1/"1&]56>M-?#.F>4X2G=]$Q?63;$1M
MOURDJKBQ0W5-=*,$/WM2528T31=)Q8LZWF9^[JBVF;R;LJC%447Z7E5<_=Z+
M4K:;F,3O$R_%]6;<1++-&GX5WX3YWAR5'25#E'-1B5H7LHZ4N&SB'7D^D+4C
M>,2/0K1Z]!ZY5$Y2OKK!Y_,F3MV*1"ERXT)P^WB(@RA+%\FNXU<?-!XT'7'\
M_A[]HT_>)G/B6AQD^;,XF]LF7L7165SXO30OLOTD^H3F<=1G_T4\1&GA;B56
M(Y>E]K]1?M=&5GT4NY2*OW7/HO;/MOLRIST-)]">0 <")?\EL)[ !@*9^>2[
ME?E4/W##MYF2;:2Z:C7<-05Y9G8S<S?I]\Y_L]EJ._O8IEGR<&%ZQ+Y#T!&"
M#(C$QAX$*":PIX!._Q4X0 3#!1B: ?-T-J+/</H,I<\\?3:BSX,-@(@%+C!'
M!>: O@P$(&*%"RQ0@06@KP,!B" IKK!$%9:03P()!$)QB14JL8)\%D@@D(E*
MKU&)->2'I48@$[4F*6ZG%$8(RXUA)@I.)DQ+8(2PY@B&3A2=H,[=$0HC!&4_
M])BYQ]1==\_HBM+UA!3N8<*@% T3@IC);<.M3J"3:=AD&&:BRPCN=P+M3,,^
MPS!3C8:;GD!/4]!H"&9JQW#C$VAK"AH-8MA4H^'>)]#9+/Q_03"3U<?M3Z"Y
M&>@Q!!,>1LGH:*V$NOI;B(YR>:_]%6@T.]QT=O[P3_["NVO25ZZN1:VCDS3V
M@/?'\$5*(^Q2TB?;(C=[,QL&I;@8][JT[ZJ[GG0#(YO^ZI4,][_M'U!+ P04
M    "  )2@E/,)_A+)@$   F%P  &    'AL+W=O<FMS:&5E=',O<VAE970R
M+GAM;(68W6[C-A"%7\70_:[(&9&B MM [<6B!5H@V*+MM1+3L;&2Y4I*O'W[
M4K)BR#/#[$TL*6?(P[^/0RXO3?N].WC?+W[4U:E;)8>^/S^D:?=\\'79?6[.
M_A3^LV_:NNS#:_N2=N?6E[LQJ*Y24,JF=7D\)>OE^.VQ72^;U[XZGOQCN^A>
MZ[IL_]OXJKFL$IV\?_AV?#GTPX=TO3R7+_Y/W_]U?FS#6WHK97>L_:D[-J=%
MZ_>KY!?]L,5B"!@5?Q_]I9L]+X:F/#7-]^'EM]TJ48,C7_GG?BBB##]O?NNK
M:B@I^/AW*C2YU3D$SI_?2_\Z-CXTYJGL_+:I_CGN^L,J<<EBY_?E:]5_:RZ_
M^JE!)EE,K?_=O_DJR <GH8[GINK&OXOGUZYOZJF48*4N?UQ_CZ?Q]S*5_QXF
M!\ 4 +< G7T8@%, DH#TZFQLZI>R+]?+MKDLVNMHG<MA4N@'#)WY/'P<^V[\
M7VAM%[Z^K3%;IF]#.9-D<Y7 3 +WBBU7H+E)TE#_S02()F",QWF\E>-1C,<Q
M/IO'YZ015XD=):=18@ U:0<7(:"3G62BDXP[<<3)56+FE2CKJ!6N H>@92]&
M]&*XEX)X,:P672CJ>"NI3!X9(2MZL<Q+IH@7RUL,E@SC5A*IB)-<=))S)Z3O
M-SFK)-?4"-< N,BD=Z(1QXV0=;5QK!*3%W1];@65L1#IE$+T4G O2+P4?!)H
M=-82,Y),YWDAN]%*AI+B?AB5%*OID[$&%&63I,NTAHBC""8U=V2H(RT,%V:T
MAT29G<WT>S\R,35P/Y;Z 5Z1=FQU_U1V[T<FL.8(SBB")\W=FM%6(?4CR  P
M-EXRAS4'<49!K 7&A@&C=@25FJW!>S<RB35'<491K#EET; =2E"IB!49Q)J3
MV% 2:TY937&]%42@(ON3EE&L.8L-9;'FH-5%5EA#[0@Z5Y@B-HUE)FO',A$3
MFW@R235'J:$HU1R2)GBE+>(JZV)Y$<@@!0Y20T$*')"Y4723$50N,Y'>!1FB
MP"%J*$2!TQ$*.BNVDLJH"$(ADG1RA!J*4.!L+!SK&BZ*K$F0X0D<GH;"$S@5
MT>2L7P1V.A/K%QF=P-%I*#I!@F*AZ!06938Z:V1X H>GH? $(45%1SMQ*\C"
MUN)B:THF*'""6DI0X' ,S**9@*32$$F50&8H"/DL&RTA636,-Y)*99&-#F1^
M D]J+24Z\'P5YIR>W'!5;%')( 8.8DOS:^"(Q8)N=((((KV",H614]C2/0$Y
M7[.P_;,3JB K=!;9=U'F,'(.6[HK2!HZ8S[6W#N1&8S\Y&]C)__(T9^SDQX:
M-\BI2 ?Y0\F]#YF:R*EIZ3I$CL.<;B8?:^Z=R+Q$SDM+>8E"LJD4TMQ7D$&A
M;83?*/,2.2]SRDL4,LZ03;*CKJ33VJE(CH8R,Y$SD^ZD&^0T_&0<W5!^IKIW
M(S,3.3-S"BKD--1#$LSZ1]*I+)8!H(Q.Y.BDQZ+-I)G?E8EYN:23\O)T=F$Y
MW"#_4;8OQU.W>&KZOJG'&\I]T_0^E*D^A_8=?+F[O51^WP^/>7ANKS>WUY>^
M.4^WTNGM:GS]/U!+ P04    "  )2@E/(LTGH6,"  " "   &    'AL+W=O
M<FMS:&5E=',O<VAE970S+GAM;(V6VXZ;,!"&7P7Q ,$<S"$B2$VJJI5:*=JJ
M[;63. $M8&H[8?OVM0U!8'N3S46PS?_/? /6F+PG])65&'/GK:E;MG%+SKNU
MY[%CB1O$5J3#K;AS)K1!7$SIQ6,=Q>BD3$WM!0#$7H.JUBURM;:G14ZNO*Y:
MO*<.NS8-HO^VN";]QO7=^\)+=2FY7/"*O$,7_!/S7]V>BIDW13E5#6Y915J'
MXO/&_>2O=[XR*,7O"O=L-G9D*0="7N7DVVGC DF$:WSD,@02EQO>X;J6D03'
MWS&H.^64QOGX'OV+*EX4<T ,[TC]ISKQ<N.FKG/"9W2M^0OIO^*Q(.@Z8_7?
M\0W70BY)1(XCJ9GZ=XY7QDDS1A$H#7H;KE6KKOT8_VZS&X+1$$P&/WIH"$=#
MJ!F\@4R5^AEQ5.24] X=WE:'Y*;PUZ%XF$>YJ)Z=NB>J96+U5B11[MUDG%&R
M'23!3!(L%3M3$<))XHG\$T1@A0B4/YI#0 UBD,1*TBH)!+Z&8='$D9TCM'*$
M)D>L<0R29)8#K R0)Z(%260EB4R21",9)'"6Q ?JI\$\URUXH)4'FCRIQ@.-
M/#K)(\6"(;8RQ"9#IC'$3QD>*18,B94A,1A2+<,V^<@.>2):D*16DM0DT9)L
M4Z/6 %BWR >$"Z+,2I291%JCV&9&HB2"29)J>VEGT_D0@,#.XP-[;P,F4:@W
M-V!)%:1!D.D]SB(,4QA%X3M,[_1;WV0R&JYOOH\,0H/HF6S@\69'@3R;?R!Z
MJ5KF' @7IXKJ_6=".!8AP4H$*\7GP#2I\9G+82+&=#@3APDGW7C>>]-'1_$?
M4$L#!!0    (  E*"4\V,AQ\1 0  !T4   8    >&PO=V]R:W-H965T<R]S
M:&5E=#0N>&ULC9C;CN)&$(9?Q?+]C+O:[FX; =+8L$JD1!KM*LFU!YJ#U@?6
M-L/F[>/3L%!5'G(#=O-5=?U]JJ+GE[+Z7A^L;9R?>5;4"_?0-*>9Y]6;@\W3
M^KD\V:+]95=6>=JTK]7>JT^53;>]49YY4@CMY>FQ<)?SONVU6L[+<Y,="_M:
M.?4YS]/JW]AFY67A@OO1\/6X/S1=@[><G]*]_6:;OTZO5?OF7;ULC[DMZF-9
M.)7=+=P7F*VE[ QZXN^CO=0WSTXGY:TLOW<OOV\7KN@BLIG=-)V+M/UZMXG-
MLLY3&\>/T:E[[;,SO'W^\/ZE%]^*>4MKFY39/\=M<UBXH>ML[2X]9\W7\O*;
M'04IUQG5_V'?;=;B721M'YLRJ_M/9W.NFS(?O;2AY.G/X?M8]-^7T?^'&6\@
M1P-Y-6C[_LS 'PW\7P;!IP;!:!#\WQ[4:*!0#]Z@O1_,5=JDRWE57IQJ6 ^G
MM%MV,%/M=&VZQGYV^M_:\:S;UO=EJ.;>>^=G1.(!D;>(OD=6%($KX;7]7X.0
M7!"Q).;ROH.$$J%!,3QTLO[4R5V8/CM6?F\?W-J':*P&1/=(T2,*_"A":B@5
M1 (0M:)4%!J)AG[-4! %$:\K8'4%5!>*)1X0==.+;X1$ZA.&TL+WD2Y*&0@5
MZG%-*1T:,Z%+L;H4T14)I$N17B#P#2!=#"4CL@DH)76HT3)=,Y0/1O"Z-*M+
M4UTHXEC3,39D&3)0 'A;40B4"-"<KADJ$"+D51E6E:&JT :.#>D%S6="";*M
M:#\:G7AKQHL()Y9>R(H)J1@T9#%%<!Q)2.)X A$@/8_]K!_XN=,3L7HBJ@?%
M$4</)X<23X!"7=&.B!K&C5*\&!!\TA-4#LEZ@AY RN"\Q%!*:[SD& H@E&@$
MUPP62E].2)O(YT"E:2P-'DX5@SSADX'IBLP5YV=2$5L<O("DB@Q6))E]'V!-
M% K(;N(@25112)N)4@+X6@)H,1'A8F)D[E7AG,M 3SCC,DR;Y; HQI'R)T3Q
MA0302@(GG1B8Q XA67^44M+@PX*A0$0:UWT,9G0PD7*!KR6 %A,@<#4!3*&@
M0G)F<.4$KKI7#"6U+[ TQE=HIF:-+R> UA,@<$$Q0G<UJZ*+D5)M]2NP-$J%
MOD]FC5+*Z*E=QM<4,&1R_T[:U/'#9W*@^14$SN4C9&Y/U&>\#A.64N0$HA0\
M QD=SM=4>0Q\4@>:;$EY$8_0(VD<1:51JI4&6!KGRTS4DI+/\%(P$S]1)$@^
MDTJ:WD#@5"II?C.!1,LCX2@_(']@.5^ *VW6EZ\GI/$I5=*4"@+G5$F3G GP
MWYF$I7#0*Y8R1!I'D3\1WLW51FZK?7_/5#N;\EPTW8S?M%[OLE[ZJRS4'L,L
M :9]!;/U<%/UR_UP<?9G6NV/1>V\E4U3YOVUR:XL&]L&WZYVUSG8='M]R>RN
MZ1Y-^UP-%U;#2U.>QLLX[WHCN/P/4$L#!!0    (  E*"4\&E?LR&P<  (PN
M   8    >&PO=V]R:W-H965T<R]S:&5E=#4N>&ULC5I=;ZM&$/TKEM]SS7Z!
MB9)(=0"U4BM=W:KM,TE(8EW;N$"2VW]?P,37.W.6W9?8.&=G9W9@SME9;C[J
MYGO[6E7=XL=^=VAOEZ]==[Q>K=K'UVI?ME_J8W7H__-<-_NRZR^;EU5[;*KR
M:1RTWZUD%,6K?;D]+.]NQM^^-G<W]5NWVQZJK\VB?=OOR^:_3;6K/VZ78OGY
MP[?MRVLW_+"ZNSF6+]6?5??7\6O37ZW.5IZV^^K0;NO#HJF>;Y>_B.O"Q,.
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
M>8P=-I8 !D@ UG $(!ZV'Y,9SMC:I)3= BP5/DMVZ([7W #S,T(VX B:$S)
MN>J_P>K ('5 "=F (VA:_P$&$3* 04(&.%#_D35$R*N+=W"'][3_*)N7[:%=
M/-1=5^_'EVZ?Z[JK>IO1EWXU7ZORZ7RQJYZ[X6O2?V].[T>?+KKZ.+W[O3J_
M@'[W/U!+ P04    "  )2@E/_KK[IF,$  #W%   &    'AL+W=O<FMS:&5E
M=',O<VAE970V+GAM;(V86V_C-A"%_XKA=Z\T0U*7P#80>[%H@18(MMCV6;'I
M"U:R7$F)M_^^NL4K<PZ+OL02<S@\0U*?1ES>RNI[?;*VF?TH\DN]FI^:YOH4
M!/7N9(NL_E1>[:7]SZ&LBJQI;ZMC4%\KF^W[3D4><!A&09&=+_/ULF][J=;+
M\JW)SQ?[4LWJMZ+(JG\V-B]OJSG-/QJ^GH^GIFL(ULMK=K1_V.;;]:5J[X)[
ME/VYL)?Z7%YFE3VLYL_TM%51UZ%7_'FVMWIR/>M2>2W+[]W-K_O5/.P<V=SN
MFBY$UOZ\VZW-\RY2Z^/O,>C\/F;7<7K]$?U+GWR;S&M6VVV9_W7>-Z?5/)G/
M]O:0O>7-U_+VBQT3,O/9F/UO]MWFK;QSTHZQ*_.Z_SO;O=5-68Q16BM%]F/X
M/5_ZW]L8_Z,;[L!C![YW:,?^KPYJ[*!^=M!]\H.S/M7/69.MEU5YFU7#:EVS
M;E/0DVHG<]<U]G/7_Z_-MFY;W]>D]#)X[P*-FLV@X:GFK@C:Z/<A& VQ8=&=
M'P?82D42XQ$43$+U_=5#$@8'T#" [@/H:8"0G%D8-%&ON0PFE7(SD2(31YY<
M#+1B0"X1#A#! )',1<5.+H/&3&SJT(1.+E*DDEAC*S&T$@LKJ;NWI"0RCH]8
M^%@8S^HFT$8B9X3<&4G$(%$:.4:0QO,DI-!(*I-U)GV3BC$2=_6V4A,E"?9!
M(7[J0[#+?"$\X""PSU*7'"37CI6;]!;)M";/7B.(F6=B84CZ83&0F>0]NI&B
M!6GC66G"2"(EW&AWK4?-PT 1N6Z B'3J,8/Q1I)OVL7;J)F.0R82<R-5.O3-
M# 8<&6'&1<]FU#PF'0LS0,7:MXTQ+4GBTBC7C23A@IA=]@,9IZ$'_H2)29*'
M1KR.)1"5>*( -"D,/=@DS$V2X#3&-2.AJ+5VW4@1)YZ7&F%TDF0GR0=*DG&A
MR,4X4)'OA<*8GQP"-^X3-8H>QF%EW%T,9+'6GFW#&,9,DN>:/2$P/EGBD[3[
M)#! (R>4NBDA6>I[5S(F*$N"DKNS-D DZ@<&!(VC-/: @C%#&=2(VGT:@$C:
MD0B-?%8P05D2E'3D6D%P!$L%9'&:^IC.F*(<@?WGV\*8?"S)1SIQD_H?Y2(#
M/$9A&'K<8/0QJ!FU6TVPQ-HBGHXT&@(R,GY'&( , "C>FT DYT?BK_WJ][E1
M&( * -"X %22;(N87#](U<++4^$H#$ %JE'#KA]99FKW';(%HC3R5*(*HU0!
ME(JB0B%&QF[UAU13"C[:\7P= Y"*HD(A2!J7*EL@TZ'RD5UAE"J 4E%8*%"/
MIJER_4C50G$8*8\A#%0%@&I<H"I)2L7BXP&I8N^[1F&<*O -;]POUE'T<-;
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
MX_%E8_]K8SQ@*IL;'*$6/]AL2*A].'["LQW';#2\Z:8?Q.9O7/P%4$L#!!0
M   (  E*"4_MMQQ=MP$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#$V
M+GAM;&U3VVZ<,!#]%<L?$.^R)-FN "F;JDJE5EJE:O+LA0&L^$)LLZ1_W[$A
MA*:\V)[Q.6<N'F>#L2^N!?#D34GM<MIZWQT8<V4+BKLKTX'&F]I8Q3V:MF&N
ML\"K2%*2)9O-#5-<:%IDT7>R169Z+X6&DR6N5XK;/T>09LCIEKX['D73^N!@
M1=;Q!GZ!_]V=+%IL5JF$ NV$T<1"G=.[[>&8!GP$/ D8W.),0B5G8UZ"\;W*
MZ28D!!)*'Q0X;A>X!RF#$*;Q.FG2.60@+L_OZM]B[5C+F3NX-_)95+[-Z9Z2
M"FK>2_]HA@>8ZKFF9"K^!UQ (CQD@C%*(UU<2=D[;]2D@JDH_C;N0L=]&&_2
M9**M$Y*)D,R$?8S#QD Q\Z_<\R*S9B!V['W'PQ-O#PGVI@S.V(IXA\D[]%Z*
M[?XF8Y<@-&&.(R998F8$0_4Y1+(6XIC\1T_6Z;O5#'>1OEM&O_ZR+I"N"J11
M(/VGQ-M/):YA]I^"L$5/%=@F3I,CI>EUG.2%=Q[8N_B([ ,^3OM/;ANA'3D;
MCR\;^U\;XP%3V5SA"+7XP69#0NW#\1;/=ARST?"FFWX0F[]Q\1=02P,$%
M  @ "4H)3XT%/6&W 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,3<N
M>&UL;5/M;ML@%'T5Q ,4QTFZ)+(M-9VJ3=JDJ-.ZW\2^ME&!ZP&.N[<?8->S
M.O\![N6<<S^X9 .:5]L"./*FI+8Y;9WK3HS9L@7%[1UVH/U-C49QYTW3,-L9
MX%4D*<G2)+EGB@M-BRSZ+J;(L'=2:+@88GNEN/ES!HE#3C?TW?$LFM8%!RNR
MCC?P ]S/[F*\Q6:52BC05J F!NJ</FQ.YUW 1\"+@,$NSB14<D5\#<;7*J=)
M2 @DE"XH<+_=X!&D#$(^C=^3)IU#!N+R_*[^%&OWM5RYA4>4OT3EVIP>**F@
MYKUTSSA\@:F>/253\=_@!M+#0R8^1HG2QI64O76H)A6?BN)OXRYTW(?Q9KN?
M:.N$="*D,^$0X[ Q4,S\,W>\R P.Q(R][WAXXLTI];TI@S.V(M[YY*WWWHK-
MX9BQ6Q":,.<1DRXQ,X)Y]3E$NA;BG/Y'3]?IV]4,MY&^74;?']<%=JL"NRBP
M6PH<DP\EKF$^%LD6/55@FCA-EI38ZSC)"^\\L ]I?)-_\'':OW/3"&W)%9U_
MV=C_&M&!3R6Y\R/4^@\V&Q)J%XZ?_-F,8S8:#KOI!['Y&Q=_ 5!+ P04
M"  )2@E/.!M[5K8!  #2 P  &0   'AL+W=O<FMS:&5E=',O<VAE970Q."YX
M;6QM4]MNW" 0_17$!X1=[*3)RK:4316U4BNM4K5]9NVQC0(>%_ Z_?L"]KIN
MZA=@AG/.7!BR$<VK;0$<>=.JLSEMG>L/C-FR!2WL#?;0^9L:C1;.FZ9AMC<@
MJDC2BO'=[HYI(3M:9-%W,D6&@U.R@Y,A=M!:F-]'4#CF=$^OCA?9M"XX6)'U
MHH%OX+[W)^,MMJA44D-G)7;$0)W3Q_WAF 9\!/R0,-K5F81*SHBOP?A<Y707
M$@(%I0L*PF\7> *E@I!/X]>L29>0@;@^7]6?8^V^EK.P\(3JIZQ<F]-[2BJH
MQ:#<"XZ?8*[GEI*Y^"]P >7A(1,?HT1EXTK*P3K4LXI/18NW:9==W,?I)KG2
MM@E\)O"%<!\); H4,_\HG"@R@R,Q4^][$9YX?^"^-V5PQE;$.Y^\]=Y+L7_@
M&;L$H1ESG#!\C5D0S*LO(?A6B"/_C\ZWZ<EFADFD)^OHMP_; NFF0!H%TG]*
M3-Z5N(5)WP5AJYYJ,$V<)DM*'+HXR2OO,K"//+[)7_@T[5^%:61GR1F=?]G8
M_QK1@4]E=^-'J/4?;#$4U"X</_BSF<9L,ASV\P]BRS<N_@!02P,$%     @
M"4H)3V\W<>NW 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,3DN>&UL
M;5/;;IPP$/T5RQ\0[[)L+BM RJ:J6JF55JG:/'MA "N^4-LLR=]G; @E*2^V
M9WS.F8O'V6#LLVL!/'E14KN<MMYW!\9<V8+B[LITH/&F-E9QCZ9MF.LL\"J2
ME&3)9G/-%!>:%EGTG6R1F=Y+H>%DB>N5XO;U"-(,.=W2=\>C:%H?'*S(.M[
M+_"_NY-%B\TJE5"@G3":6*AS>K\]'-. CX _ @:W.)-0R=F8YV!\KW*Z"0F!
MA-('!8[;!1Y RB"$:?R=-.D<,A"7YW?UK[%VK.7,'3P8^20JW^;TEI(*:MY+
M_VB&;S#5LZ=D*OX'7$ B/&2",4HC75Q)V3MOU*2"J2C^,NY"QWT8;]+]1%LG
M)!,AF0FW,0X; \7,OW#/B\R:@=BQ]QT/3[P])-B;,CAC*^(=)N_0>RFV=_N,
M78+0A#F.F&2)F1$,U><0R5J(8_(?/5FG[U8SW$7Z;AE]?[<ND*X*I%$@_5#B
M]:<2US WGX*P14\5V"9.DR.EZ76<Y(5W'MC[)+[)/_@X[3^Y;81VY&P\OFSL
M?VV,!TQE<X4CU.('FPT)M0_'&SS;<<Q&PYMN^D%L_L;%&U!+ P04    "  )
M2@E/,^GY*<4!   W!   &0   'AL+W=O<FMS:&5E=',O<VAE970R,"YX;6QU
M5.UNVR 4?17$ Q2'Q%L:V9::3E,GM5+4:=UO8E]_J'RX@./N[0?8];R,_3%P
M.?><<X'K;%3ZU;0 %KT++DV.6VO[ R&F;$$P<Z-ZD&ZG5EHPZY:Z(:;7P*J0
M)#BA2?*)"-9)7&0A=M)%I@;+.PDGC<P@!-._CL#5F.,-_@@\=TUK?8 46<\:
M^ [V1W_2;D46EJH3($VG)-)0Y_AN<SBF'A\ +QV,9C5'OI*S4J]^\:W*<>(-
M 8?2>@;FA@O< ^>>R-EXFSGQ(ND3U_,/]J^A=E?+F1FX5_QG5]DVQWN,*JC9
MP.VS&A]@KB?%:"[^$2[ '=P[<1JEXB9\43D8J\3,XJP(]CZ-G0SC..VD^SDM
MGD#G!+HD[(,.F82"\R_,LB+3:D1Z.ON>^2O>'*@[F]('PU&$/6?>N.BEV-SN
M,W+Q1#/F.&'H&K,@B&-?)&A,XDC_2:?Q]&W4X3:D;_]R>!LGV$4)=H%@M]9/
MDJL28YC_%)E&1=(( ;T2B6&V5R)D=7$"=!.>K$&E&F1HEU5TZ8H[&B[^#WQJ
MJ2>FFTX:=%;6/9]PR;52%IR5Y,9Y:5T7+PL.M?73SVZNI[<\+:SJYS8ER[^B
M^ U02P,$%     @ "4H)3P+54&?% 0  -P0  !D   !X;"]W;W)K<VAE971S
M+W-H965T,C$N>&UL;531;ML@%/T5Q <4A\1I%MF6FE;5)FU2U&G;,[&O;50P
M'N"X^_L!=CTWX\7 Y=QSS@6NLU'I5],"6/0F16=RW%K;'PDQ90N2F3O50^=V
M:J4ELVZI&V)Z#:P*25(0FB1[(AGO<)&%V%D7F1JLX!V<-3*#E$S_.8%08XXW
M^#WPPIO6^@ ILIXU\!WLC_ZLW8HL+!67T!FN.J2ASO'#YGA*/3X ?G(8S6J.
M?"47I5[]XDN5X\0; @&E]0S,#5=X!"$\D;/Q>^;$BZ1/7,_?V9]#[:Z6"S/P
MJ,0O7MDVQP>,*JC9(.R+&C_#7$^*T5S\5[B"<'#OQ&F42ICP1>5@K)(SB[,B
MV=LT\BZ,X[2SW\YI\00Z)] EX1!TR"04G#\QRXI,JQ'IZ>Q[YJ]X<Z3N;$H?
M#$<1]IQYXZ+7@B:[C%P]T8PY31BZPFP6!''LBP2-29SH?^DTGKZ-.MR&].T'
MAVF<8!<EV 6"W0>"_4V),<Q]7"2-BJ01@L.-2 SSZ4:$K"Y.@F["DS6H5$,7
MVF457;KB@8:+_P>?6NH;TPWO#+HHZYY/N.1:*0O.2G+GO+2NBY>%@-KZZ;V;
MZ^DM3PNK^KE-R?*O*/X"4$L#!!0    (  E*"4_]-E[(M@$  -(#   9
M>&PO=V]R:W-H965T<R]S:&5E=#(R+GAM;&U3VV[<(!#]%<0'!)O=7+2R+653
M5:G42JM$;9]9>WQ1N#B U^G?9\".ZZ9^ 6:8<^;,,&2CL2^N!?#D34GM<MIZ
MWQ\8<V4+2K@KTX/&F]I8)3R:MF&NMR"J"%*2\22Y84ITFA99])ULD9G!RT[#
MR1(W*"7LGR-(,^8TI1^.IZYI?7"P(NM% \_@?_8GBQ9;6*I.@7:=T<1"G=/[
M]'#<A_@8\*N#T:W.)%1R-N8E&-^JG"9!$$@H?6 0N%W@ :0,1"CC=>:D2\H
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
M:&5E=#(V+GAM;'54;6_;(!#^*X@?4&R<9%UD6VI:39NT25&G=9^)?7Y1P7B
MX^[?#[#C>1[]$KCS\W)'.-)1JE?= !CT)GBG,]P8TQ\)T44#@ND[V4-GOU12
M"69LJ&JB>P6L]"3!"8VB Q&L[7">^MQ9Y:D<#&\[."ND!R&8^GT"+L<,Q_B6
M>&[KQK@$R=.>U? =S(_^K&Q$%I6R%=#I5G9(097AA_AX.CB\![RT,.K5'KE.
M+E*^NN!+F>'(%00<"N,4F%VN\ B<.R%;QJ]9$R^6CKC>W]0_^=YM+Q>FX5'R
MGVUIF@S?8U1"Q09NGN7X&>9^]AC-S7^%*W +=Y58CT)R[7]1,6@CQ:QB2Q'L
M;5K;SJ_CK'^CA0ET)M -@4Q&OO(G9EB>*CDB-9U]S]Q?'!^I/9O")?U1^&^V
M>&VSUYS2^Y1<G=",.4T8NL+$"X)8]<6"ABQ.]#\Z#=.38(6)IR=K>K0/"^R"
M CLOL/NGQ8^;%@.8) J;[(,F^X! O#$)8=XYBD/0Y! 02#8F(<QN8T)6MT.
MJOU<:%3(H?,SN<HNH_= _>WZ"Y_F]AM3==MI=)'&WE%_DRHI#=A2HCO;<&.?
MBB7@4!FW_6#W:AJ8*3"RG]\"LCQ(^1]02P,$%     @ "4H)3[J ?&.W 0
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
M5U]+T%2)$_V'3M/T?=+A/M+W6WJ6IP4.28%#%#AL!?+LKL44YC]-YLDB>4*
MWA5)8?9W1<CFXB28+CY9BVH]JC@NF^PZ%8\T7OQ?^#Q27YGIN++HHIU_/O&2
M6ZT=>"O9@_?2^RE> P&M"]NW?F_FMSP'3@_+F)+UOZ+Z U!+ P04    "  )
M2@E/^F^^,Q "  "X!0  &0   'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6R%
M5%UOFS 4_2N(]]6$SR@B2 U5M4F;%'7:]NS 34"U,;--Z/[]_$$I#=[Z$MO7
MY]QS[@V^^<CXLV@ I/="22?V?B-EOT-(5 U0+.Y8#YVZ.3-.L51'?D&BYX!K
M0Z($A4&0(HK;SB]R$SOR(F>#)&T'1^Z)@5+,_QR L''O;_S7P%-[::0.H"+O
M\06^@_S1'[DZH3E+W5+H1,LZC\-Y[]]O=F6F\0;PLX51+/:>KN3$V+,^?*GW
M?J - 8%*Z@Q8+5<H@1"=2-GX/>7T9TE-7.Y?LS^:VE4M)RR@9.176\MF[V]]
MKX8S'HA\8N-GF.I)?&\J_BM<@2BX=J(T*D:$^?6J04A&IRS*"L4O=FT[LX[V
M)HLGFIL03H1P)BCM_Q&BB1"]$8P"LLY,J0]8XB+G;/2X_;-ZK+^)S2Y2S:QT
MT/3.W*EJA8I>BS")<W35B2;,P6+"!68S(Y#*/DN$+HE#N**'[P7*-6*;N14B
M9Q&1X<?OBDANBK"8U& Z@XGCFT++-2;<IFXCL=-([#"2WAB)5R)1<./#0I(%
MY-,F"!*WD\3I)'$X^4=/4V>"]..>ENG:9Y)%;I7,J9)]W+ R6S7,H8(6'SP%
M?C&S07@5&SJI/ZU%=!X_]Z%^,#?Q@QI+=HJ\I;$S[1OFE[83WHE)]1S-HSDS
M)D%Y#.Y4$QHU1N<#@;/4VTSMN1TF]B!9/\U)- _KXB]02P,$%     @ "4H)
M3V+R=:WP 0  [00  !D   !X;"]W;W)K<VAE971S+W-H965T,S,N>&ULC53;
M;IPP$/T5Q ?$7)?-"I"R&U6MU$JK5&V?O3!<%!M3V[ND?U]?""% J[Q@S_C,
MF7.,[71@_%DT -)YH:03F=M(V1\0$D4#%(L[UD.G5BK&*98JY#42/0=<FB)*
M4.!Y.T1QV[EY:G)GGJ?L*DG;P9D[XDHIYG^.0-B0N;[[FGAJZT;J!,K3'M?P
M'>2/_LQ5A":6LJ70B99U#H<J<Q_\PRG6> /XV<(@9G-'.[DP]JR#+V7F>EH0
M$"BD9L!JN,$)"-%$2L;OD=.=6NK"^?R5_9/QKKQ<L( 3([_:4C:9NW>=$BI\
M)?*)#9]A]!.[SFC^*]R *+A6HGH4C CS=8JKD(R.+$H*Q2]V;#LS#G8E"<:R
M[8)@+ BF C_^;T$X%H1O!9$Q;Y49JX]8XCSE;'"X_5D]UF?"/X1J,PN=-'MG
MUI1;H;*W/(CW*;IIHA%SM)A@AO$G!%+L4XM@J\4Q6)4'[QN<UHA]LMTAW#01
MFOKHG8G[A0F+V1E,9TUX]\E"R 8H3KQM*=&FE&@M9?</@GB3(/Z EW@E<^>'
M"RMK3!0N-Q7-3@D%7IL+)9R"73NI_\<L.]W9!W..%_FCNLOVZKW1V(?@&^9U
MVPGGPJ0ZP^:D58Q)4!*].Z6Q46_/%!"HI)XF:L[M#;2!9/WXN*#IA<O_ E!+
M P04    "  )2@E/[PQQ0XH"  "0"   &0   'AL+W=O<FMS:&5E=',O<VAE
M970S-"YX;6R-5NV.XB 4?96F#S M]!-33<:/S6ZRFYC9S.YO5-1FVM(%U-FW
M7Z"U5B"Z?P1NSSW<<ZC<%A?*/OB1$.%]UE7#I_Y1B'82!'Q[)#7F+[0EC7RR
MIZS&0B[9(> M(WBGD^HJ@&&8!C4N&W]6Z-B:S0IZ$E79D#7S^*FN,?L[)Q6]
M3'W@7P-OY>$H5""8%2T^D)]$O+=K)E?!P+(K:]+PDC8>(_NI_PHF*Z3P&O"K
M)!<^FGM*R8;2#[7XMIOZH2J(5&0K% .6PYDL2%4I(EG&GY[3'[94B>/YE?V+
MUBZU;# G"UK]+G?B./5SW]N1/3Y5XHU>OI)>3^)[O?COY$PJ"5>5R#VVM.+Z
MU]N>N*!USR)+J?%G-Y:-'B\]_S7-G0#[!#@DR+T?)41]0G1+B!\FQ'U"_+\[
M)'U"8NP0=-JUF4LL\*Q@].*Q[G5HL7KKP"21Q[5507TZ^IGTD\OH>0934 1G
M1=1CYAT&CC!Y>@]9VI ;22 +&*J KBKFT$J']QLL;$2>&34\)5D])+DK,W*:
M%>G\>)R?&UYUD%1#&@U)0(20H<9&Q2@$!FIIHU">0</ZE0,%4(S<NF*GKMC2
M!5/H)DB<!,ES8SI(,C8F3#)#S,)&Q1D(C7-<VBB4HCPVC+%1.8)QZM:5.G6E
M#F,B-T'F),B>&Y-9948P,FRQ,0"$YOMO@Z0KAB<.H@3E;D6Y4U'NL"1V$R G
M 7IN";+_1&%H6&)C<F!@EC8FRPQK5S9&6IL8@H+1=5H3=M"]C7M;>FJ$NBQ&
MT:%]OD)U'1OQ.9@L@".^E.VVZXXW^JY7_\#L4#;<VU AFX"^JO>4"B)K#U_D
M01[EY\&PJ,A>J&DFYZQKDMU"T+;O_\'P$3+[!U!+ P04    "  )2@E/50?S
M67\"  !V"   &0   'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6R%EMN.FS 0
MAE\%<=\% ^80$:0-5=5*K;3::MMKAS@!+6!J.V'[]K4-8:EMVIM@.__,?#-8
M,^0CH:^LQI@[;UW;L[U;<S[L/(]5->X0>R #[L4_9T([Q,667CPV4(Q.RJAK
MO<#W8Z]#3>\6N3I[HD5.KKQM>OQ$'7;M.D1_'W!+QKT+W/O!<W.IN3SPBGQ
M%_P=\Y?AB8J=MW@Y-1WN64-ZA^+SWGT$NQ(H Z7XT>"1K=:.3.5(R*O<?#GM
M75\2X1977+I XG'#)6Y;Z4EP_)J=NDM,:;A>W[U_4LF+9(Z(X9*T/YL3K_=N
MZCHG?$;7EC^3\3.>$X*N,V?_%=]P*^221,2H2,O4KU-=&2?=[$6@=.AM>C:]
M>HZS_[N9W2"8#8+%0,3^ET$X&X3O!I%*?B)3J7Y$'!4Y):-#I[<U('DIP"X4
MQ:SDH:J=^D]DR\3IK0ABF'LWZ6C6'"9-L-* 1>$)[TN(P!;B$!CFP=\!2E.1
M)O8(H36)4-E'*WNHYS!)8B7I)PCH)QJ'*4J3C50C*TAD@ 1QK)&8&KW@Y22!
M:UB00#L(M() "XB6[0$:40",@(9B$:5P R6VHL06E%1#B8TH'X"?Z:_'IH*)
M;X=)K##)_V]*8A8_@WI93%$8AAM7);62I):R9!I*:D0QKHKI)MYX.YD5(S,Q
M5A6=,#*S[B&(-!#3T18(\.V=R+>@ +T5^>;;237>TB8*XPV8C;8(+#"!#@.,
M?A'J%\6B,5F\5;?N,+VHP<:<BEQ[+OOBZG09GH^![/;:^4$.534%WMU,$_D;
MHI>F9\Z1<#%+5,<_$\*Q8/0?1*5J\1&P;%I\YG*9B#6=)N&TX628I[RW?&H4
M?P!02P,$%     @ "4H)3\@+NM,I @  /@8  !D   !X;"]W;W)K<VAE971S
M+W-H965T,S8N>&UL?571CILP$/P5Q ><$QS C0C2)5752JT47=7KLT,V 9V-
MJ>V$Z]_7-H0CX/0EV,OL[,S:;+)6R#=5 NC@G;-:;<)2ZV:-D"I*X%0]B09J
M\^8D)*?:;.49J48"/;HDSE"T6"2(TZH.\\S%]C+/Q$6SJH:]#-2%<RK_;H&)
M=A,NPUO@I3J7V@90GC7T##]!_VKVTNS0P'*L.-2J$G4@X;0)GY?K';%X!WBM
MH%6C=6"='(1XLYMOQTVXL(* 0:$M S6/*^R ,4MD9/SI.<.AI$T<KV_L7YQW
MX^5 %>P$^UT==;D)21@<X40O3+^(]BOT?N(PZ,U_ARLP [=*3(U",.5^@^*B
MM. ]BY'"Z7OWK&KW;'O^6YH_(>H3HB'!U/Y? NX3\$?"RIGOE#FKGZFF>29%
M&\CNL!IJ[\1RC4TS"QMTO7/OC%MEHM<\2G&&KI:HQVP[3#3"+ <$,NQ#B<A7
M8AO-TJ/[ KLY@J3^"MAK KM\?&=BY2=8>0E6CF!U1Q!/NM!A$H>I.TQ")D;F
MF&2$N1,2>X7$'B')1$B'B4=%,)EV=(Y)R8..)%XAB:>E#\XD]1*D'B>3=FW3
MF<J(+"=.YAB,'UP_XA5"/$(^3820V;EA@J=*YD1)/!&"1I\=!WEV$TH%A;C4
MVE[P4708@L^1_6PG\:T9CMTL^Z#I)NL/*L]5K8*#T&8HN$_W)(0&HW#Q9-I4
MFF$^;!B<M%VF9BV[D=9MM&CZ:8V&OXS\'U!+ P04    "  )2@E/5E<#%KH!
M   1!   &0   'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q]5-ENVS 0_!6"
M[PUUQ38,24"B(&B!%C!2-'FFI94EA(=*TE;Z]R4I6K =(2_B[G)F.,M#^2C5
MN^X #/K@3.@"=\8,6T)TW0&G^DX.(.Q,*Q6GQJ;J0/2@@#:>Q!E)HFA%..T%
M+G-?VZDRET?#>@$[A?21<ZK^/0*38X%C?"Z\](?.N (I\X$>X#>8/\-.V8S,
M*DW/0>A>"J2@+?!#O*TRA_> UQY&?1$CU\E>RG>7_&@*'#E#P* V3H':X005
M,.:$K(V_01//2SKB97Q6?_:]VU[V5$,EV5O?F*[ &XP::.F1F1<Y?H?0SSU&
MH?F?< )FX<Z)7:.63/LOJH_:2!Y4K!5./Z:Q%WX<@_Z9MDQ( B&9"7'V)2$-
MA/2&0"9GOM4G:FB9*SDB-1W60-V=B+>IW<S:%?W>^3G;K;;54YELHIR<G%#
M/$Z8Y!)SC:@^(S;K&4*L@=E%LN@B\?SLRD6\+) N"J1>(+T22)8%LD6!;,%!
M>K,/$V;E,<)COJ7K&U#U&;3*;HR0B\-QC^4758=>:+27QIZS/XU62@-6+KJS
M-["S[W-.&+3&A6L;J^F63HF10WB 9/X+E/\!4$L#!!0    (  E*"4^(]1*G
M#P,  -X,   9    >&PO=V]R:W-H965T<R]S:&5E=#,X+GAM;(U7T6Z;,!3]
M%<0'!!O;8*HDTIHL;:5-JCIM>Z:)DZ "SL!)NK^? 2<#^]+F)6#GG'/OM2\'
M,SW+ZJW>"Z&\]R(OZYF_5^IP%P3U>B^*M)[(@RCU/UM9%:G2PVH7U(=*I)N6
M5.1!B% 4%&E6^O-I._=<S:?RJ/*L%,^55Q^+(JW^WHM<GF<^]B\3+]ENKYJ)
M8#X]I#OQ0ZB?A^=*CX*KRB8K1%EGLO0JL9WY7_#=$^8-H47\RL2Y[MU[32FO
M4KXU@Z?-S$=-1B(7:]5(I/IR$@N1YXV2SN./$?6O,1MB__ZBOFJ+U\6\IK58
MR/QWME'[F<]];R.VZ3%7+_+\*$Q!S/=,]=_$2>0:WF2B8ZQE7K>_WOI8*UD8
M%9U*D;YWUZQLKV>C?Z'!A- 0PBL!TP\)Q!#(K01J"/16 C,$=BLA,H3H5D)L
M"/&M!&X(_#\A_I"0&$)B10BZ_6L;8IFJ=#ZMY-FKNIX^I,VC@^\2W7+K9K+M
ML/8_W1.UGCW-0TZGP:D1,IC[#A,.,&R(64"8:(A9 I@AXBND$@\Q*Q=C0QX@
M&3[$/'Z:S-.'@0*]JM>E#<&E#5L^'6216,6XF,A:V8<.$K60LH7@:"0/ N9!
MW#P29&UQAXE[00B?1!@.0\$P% B#K0Z@3BT4V3W@8L+$ZLA5AV%]'69A'@ =
M,K)N#"R( 059R2Z9DPC1+QJKU9B3R0 T2"4"4XF 5(@5!<)0.$@,!HD! 08+
M<%" ?]X!"PYTP,A2)&"0! @2P0(8P9:' (G8]CSD[&R($1K+%8^X*P9"\1$)
MV$7P#3:RQ(!)V(ZW@D",V;;H@@CEMC,"(#:V"; I8<B5DA$)V'"PZSC$>?:P
M:Q51Z-3C@O#X5L-N@5V[( C;V;A60"FRLW%!233R(&+8+[!K!J1GM$,)V VP
M:P<$V9YC0/V%XY@X+U(7Q4(R]AC WH)=<R&(VNEP]S5&)H39^;BP,)[8_1OT
MCE#-R?][6NVRLO9>I=*GL?;,M)52":V()KJVO?[8N YRL57-;:SOJ^[$W0V4
M/)BOB>#Z23/_!U!+ P04    "  )2@E/-J.$\WH"  !_"   &0   'AL+W=O
M<FMS:&5E=',O<VAE970S.2YX;6R-5MN.FS 4_!7$!ZRY7R*"M+E4K=1*T5;;
M/CO$"6@!4]L)V[^O;0A+;&^:EV ?9N:<.79LLAZ3-UHBQ*SWIF[ITBX9ZQ8
MT*)$#:1/N$,M?W/$I(&,3\D)T(X@>)"DI@:>XT2@@55KYYF,[4B>X3.KJQ;M
MB$7/30/)WQ6J<;^T7?L:>*E.)1,!D&<=/*&?B+UV.\)G8%(Y5 UJ:85;BZ#C
MTGYV%]M4X"7@5X5Z.AM;PLD>XS<Q^798VHXH"-6H8$(!\L<%K5%="R%>QI]1
MTYY2"N)\?%7_(KUS+WM(T1K7OZL#*Y=V8EL'=(3GFKW@_BL:_82V-9K_CBZH
MYG!1"<]1X)K*7ZLX4X:;4867TL#WX5FU\MF/^E>:F>"-!&\B\-SW"/Y(\#\(
MP5U",!*"1S.$(R%4,H#!NVSF!C*89P3W%AFV0P?%KG,7(5^N0@3EZLAWO)^4
M1R^Y[X09N BA$;,:,-X,DT2WD(T.<2<$X 5,57BF*E:>1O=N$ZQU1!(K-?Q7
M9'M7Y*9,W]@L7_*#FV8IG5@-F$AB6HD)'%<Q8\"$ON)&QT2IDFMKPGS2]\!H
M*# 8^J0CH5$@?* C R:<5>DZCM(1'>.IVW!CPB@Z6QTSW\XWAB*CH4@SY*6I
M62 V"L0/="36G01*0W2(ZR9*0W2,K^YX@XP?F.TD1CN)P8YG%DB- ND#_4BU
M?>S%RK][K6-<7UG]C8X)(J6Q6T.N4#4$9J=G@\A)7F74*O"Y9>)LF$6GV_+9
M$Z>O$E^YB[5KB&_X[3I<AA_RP]7\ Y)3U5)KCQD_\^7)?,28(5ZZ\\37L>1?
M ].D1D<FAC$?D^%.'"8,=^-U#Z9OCOP?4$L#!!0    (  E*"4^QPGI3Q0(
M (<*   9    >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;(U6VV[;, S]%</O
MBTWYFB()T'08-F #B@[;GM5$28S:EB<I2??WDV37<RVJZTLL*8<\I$0><'7E
MXDF>&%/!<U.W<AV>E.INHDCN3JRA<L$[UNI_#EPT5.FM.$:R$XSNK5%31R2.
M\ZBA51MN5O;L7FQ6_*SJJF7W(I#GIJ'BSY;5_+H.(7PY>*B.)V4.HLVJHT?V
MG:D?W;W0NVCTLJ\:ULJ*MX%@AW5X"S=;$AL#B_A9L:N<K .3RB/G3V;S9;\.
M8Q,1J]E.&1=4?R[LCM6U\:3C^#TX#4=.8SA=OWC_9)/7R3Q2R>YX_:O:J],Z
M+,-@SP[T7*L'?OW,AH2R,!BR_\HNK-9P$XGFV/%:VM]@=Y:*-X,7'4I#G_MO
MU=KO=?#_8H8;D,& C 90V%QZ(AOY1ZKH9B7X-1#]Y7?4O#'<$'TW.W-HK\+^
MIX.7^O2R2>)R%5V,HP&S[3%D@H$1$6GO(P7!*+;$,2>X>8)&F%CS]%6$RUF$
M/2:SF+:/,$GC-,%Y4I0G=7D@GO'TF&+"0^)%FN,T&4J3(30PH\G<=/(L\=#D
M*$V.T) 93>YDDY2+W/.V!4I3(#3)C*9PLOF@;S8K<9X2Y2D1GG3&4SKI0+H
M#\T2I5F^H]:6[N/ ,B.>:X,8;[OX'=4V@%Z56^I](/ T."!,V9P) WGJ#= N
MOP6"N"CF/#TH?]5 B4<. -<#0 0!',ER%6&9I67F8<(5 3!)F)<#()H B])W
M>;@H *(*Q"D'#.0K!EP5 )$%,I>% 31])"B]">&Z (@PD+DP@*L,;[82+@V
M: .9:P.XXO!6*^'J (@\$*>5$)"OE0@N#@01!Y+/> ;0?UHIFLP!#1-'.P')
M8,?/K1V_)J?CE'5+[!SQ#]Z/:-^H.%:M#!ZYTM.(G1D.G"NF@XD7^@U/>BH<
M-S4[*+,L]%KTHU&_4;P;QKYHG#TW?P%02P,$%     @ "4H)3Z9A%R#Y 0
MCP4  !D   !X;"]W;W)K<VAE971S+W-H965T-#$N>&UL=93=CILP$(5?!?$
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
MT.8RN"-;":'!9(P>3,K:/&+S@$.E;3<S?3E>Y7&@13^]4FA^*HM_4$L#!!0
M   (  E*"4]R9(@+] $  +D%   9    >&PO=V]R:W-H965T<R]S:&5E=#0T
M+GAM;(U4[6Z;,!1]%<0#U'P8Z") :HFJ3=JDJ-.VWPY< JK!S'9"]_:S#4&4
M>&O_Q+[7YYQ[[B5V.C+^(AH Z;QVM!>9VT@Y[! 290,=$7=L@%Z=U(QW1*J0
MGY 8.)#*D#J* L^+44?:WLU3DSOP/&5G2=L>#MP1YZXC_,\C4#9FKN]>$\_M
MJ9$Z@?)T("?X#O+'<. J0HM*U7;0BY;U#H<Z<Q_\W3[1> /XV<(H5GM'=W)D
M[$4'7ZK,];0AH%!*K4#4<H$"*-5"RL;O6=-=2FKB>G]5?S*]JUZ.1$#!Z*^V
MDDWFWKM.!34Y4_G,QL\P]Q.YSMS\5[@ 57#M1-4H&17FURG/0K)N5E%6.O(Z
MK6UOUG$ZB3[--#LAF G!0O#Q?PGA3 @_2L S 6\(:&K%S&9/),E3SD:'3U]W
M(/I/Y.^PFGZIDV;8YDR-1ZCL)0^C($47+31C'B=,L,)L$,4M(HS"MYB]#;-
MD#*Y. VL3@/#QV_X>.-TPL0&TU]]^!LCMR#/[B.T^@@M/J*-C]#BXSZP5\'6
M*MA2)=Y,'7^TD<A:(K*42.P"L54@?O^+%!,F6GG$GO</FXFU2O+^O(OD9A+8
MOZF"5G="/VK?"#^UO7".3*KK92Y!S9@$)>C=*<>->D>7@$(M]391>SZ])E,@
MV3 _E&AYK?._4$L#!!0    (  E*"4]W5"TP&@(  #4&   9    >&PO=V]R
M:W-H965T<R]S:&5E=#0U+GAM;'65VXZ;,!"&7P7Q &L.X9"((&VV6K52*T5;
M=7OMD$E :V/6=L+V[6L;EE(RN8E/__S?C)$G12_DFZH!M/?!6:NV?JUUMR%$
M535PJAY$!ZTY.0G)J39+>2:JDT"/+H@S$@5!2CAM6K\LW-Y>EH6X:-:TL)>>
MNG!.Y9\=,-%O_=#_W'AISK6V&Z0L.GJ&GZ!_=7MI5F1R.38<6M6(UI-PVOJ/
MX687!C; *5X;Z-5L[ME2#D*\V<6WX]8/;$; H-+6@IKA"D_ F'4R>;R/IO[$
MM('S^:?[LRO>%'.@"IX$^]T<=;WU<]\[PHE>F'X1_5<8"TI\;ZS^.UR!&;G-
MQ# JP93[]:J+TH*/+B853C^&L6G=V \G63Z&X0'1&!!- =%0RP!RF7^AFI:%
M%+TGA\OOJ/W&X28R=U/937<5[LPDK\SNM8R3O"!7:S1J=H,FFFG"24&,^X2(
M,,0NN@F/DS5N$*,YQLX@GAND 6ZP0@U6SF#UGT&X*'+0I$[3.DT:QC@D02$)
M HD6D$&3S"!A>.<N4Q22(I!X 4EO(7<*R5!&AC!6"T9VP\CB#(?D*"1'(,D"
MDM]^DF"%0]8H9(U T@4$T]RIQ'0?] D%B,7-&\)$RU= 9J^6@SR[?J6\2EQ:
MURQGNU-/?(S<J_\G'QKJ#RK/3:N\@]"F=[@7?A)"@\DE>##?K38]?%HP.&D[
MS<Q<#HUL6&C1C4V:3/\4Y5]02P,$%     @ "4H)3XQXLCP4 @  1P8  !D
M  !X;"]W;W)K<VAE971S+W-H965T-#8N>&UL=97;CILP$(9?!7'?-1C,(0*D
M9JNJE5HIVJKMM9-, EJ#J>V$[=O7-BRBX-S$'ON?^6;L>"@&+EYE#:"\MY9U
MLO1KI?H=0O)40TOE$^^ATSL7+EJJM"FN2/8"Z-DZM0SA($A02YO.KPJ[=A!5
MP6^*-1T<A"=O;4O%WSTP/I1^Z+\OO#376ID%5!4]O<(/4#_[@] 6FJ.<FQ8Z
MV?#.$W I_8_A;A\&QL$J?C4PR,7<,Z4<.7\UQM=SZ0<F(V!P4B8$U<,=GH$Q
M$TGG\6<*ZL],X[B<OT?_;(O7Q1RIA&?.?C=G59=^YGMGN- ;4R]\^ )30<3W
MINJ_P1V8EIM,-./$F;2_WNDF%6^G*#J5EKZ-8]/9<1AW4C*YN1WPY(!G!SS6
M,H)LYI^HHE4A^.")\?![:NXXW&%]-B>S:(_"[NGDI5Z]5U$:%.AN DV:_:C!
M2PW)9PW2\6<(=D*P#1 O N!LQ1@EB95T5D+RR,V(G(QHPXC2< 49-60!"</X
M 25V4F('!:\HL8."0S>%."G$08E6%+*AY"1U0Q(G)'% XA4DV4 BXF:D3D;J
M8) 58ZM)'C R)R-S,)(5(]O6D<4/_L*YDY([*.F*DF\H'W#RX$YT)W,^Q\#!
M6;^5293\=RT97H'0H@68%ON=BFO32>_(E>XF]LU?.%>@(P9/.NE:=_798'!1
M9JJ;D"?&UC8:BO=3VT;SMZ/Z!U!+ P04    "  )2@E/5NDRH^,!   4!0
M&0   'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6QUE-V.FS 0A5\%^0'6_)-$
M@-1LM6JE5HJV:GOMP!#0VIBUG;!]^]J&H!3<&VP/9\XW8[#SD8LWV0(H[X/1
M7A:H56HX8"RK%AB13WR 7K]IN&!$Z:6X8#D((+5-8A2'OI]B1KH>E;F-G429
M\ZNB70\GX<DK8T3\.0+E8X$"= ^\=I=6F0 N\X%<X >HG\-)Z!5>7.J.02\[
MWGL"F@)]"@['S.BMX%<'HWR8>Z:3,^=O9O&U+I!O"@(*E3(.1 \W> 9*C9$N
MXWWV1 O2)#[.[^XOMG?=RYE(>.;T=U>KMD [Y-70D"M5KWS\ G,_"?+FYK_!
M#:B6FTHTH^)4VJ=77:7B;';1I3#R,8U=;\=Q]K^GN1/".2%<$L*IEPED*_],
M%"ESP4=/3'L_$/.)@T.H]Z8R0;L5]ITN7NKHK8RR?8YOQFC6'"=-^*C9^8L&
M:_\%$CHAH36('PS"W8HQ25(KZ:TD\)/ #8F<D&@#B;)@19DTR3^4[#^MQ$Y*
M[*"$*TKLH*21FY(X*8F#$JTHR8:RSQ(W)'5"4@<D7D'2#21*W8S,R<@VC"!8
M-Y)M/GT<[->=X(<?VMP7WXFX=+WTSESILV'_X(9S!=K0?]+UMOJ*6A84&F6F
MF9Z+Z:!."\6'^0["RT58_@502P,$%     @ "4H)3V.9ES ! @  4P4  !D
M  !X;"]W;W)K<VAE971S+W-H965T-#@N>&ULC53;CILP$/T5Q >LN6:C") V
M)%4KM5*T5;?/#@P!K8VI[83MW]<V#B$D2O<%V^-SSEP83](S_BYJ .E\4-**
MU*VE[%8(B:(&BL43ZZ!5-Q7C%$MUY <D.@ZX-"1*4.!Y"T1QT[I98FP[GB7L
M*$G3PHX[XD@IYG_70%B?NKY[-KPVAUIJ \J2#A_@)\A?W8ZK$QI5RH9"*QK6
M.ARJU'WQ5]M0XPW@K8%>3/:.SF3/V+L^?"M3U],! 8%":@6LEA/D0(@64F'\
ML9KNZ%(3I_NS^A>3N\IECP7DC/QN2EFG[M)U2JCPD<A7UG\%FT_L.C;Y[W "
MHN Z$N6C8$28KU,<A634JJA0*/X8UJ8U:V_US[3[A, 2@I&@?#\BA)807@C1
M0T)D"=%G/<26$,\\H"%W4\P-ECA+..L=/K1#AW77^:M8_:Y"&\W?,7>JGD)9
M3UFX]!-TTD(6LQXPP02S7%Q#-K>0BPA2 8Q1!/>B6 <W].#:07Z+6#[/8OBO
MR/:AR%68X=UBA88?715KYF,]8&*#:8=*+.)P5J_\%A5$P=*;9?0IK>T=K3B,
MHEEB:-(1%/C!/$_A%.S82IWOQ#I.@)= =]3,OO97N7_'OE$38WC@%_EAW/S
M_-"TPMDSJ?K8=%O%F 05O/>DXJ[5A!L/!"JIM\]JSX=W/APDZ^P(0^,<S?X!
M4$L#!!0    (  E*"4_3ON.]/P(  /$&   9    >&PO=V]R:W-H965T<R]S
M:&5E=#0Y+GAM;(U5[8Z;,!!\%<0#G/E,4$20+B2G5FJEZ*JVOQVR">@,YFPG
M7-^^MB$<,5;:/]A>9L8[BUFG'65OO 00SD=-&KYV2R':%4*\**'&_(FVT,@W
M)\IJ+.22G1%O&>"C)M4$!9ZW0#6N&C=+=6S/LI1>!*D:V#.'7^H:LS\;(+1;
MN[Y["[Q6YU*H ,K2%I_A!XB?[9[)%1I5CE4-#:]HXS XK=UG?[6+%5X#?E70
M\<G<44X.E+ZIQ=?CVO540D"@$$H!R^$*.1"BA&0:[X.F.VZIB-/Y3?U%>Y=>
M#IA#3LGOZBC*M9NXSA%.^$+$*^V^P. G=IW!_#>X I%PE8G<HZ"$ZZ=37+B@
M]: B4ZGQ1S]6C1Z[0?]&LQ."@1",!#]^2 @'0OA)B!X2HH$0_>\.\4"(C1U0
M[UT7<XL%SE)&.X?UQZ'%ZM3YJUA^KD(%]=?1[V0]N8Q>LS )4W150@-FTV."
M"299W$.V<X@_(I!,8,PBL&6Q"6;TX'Z#?(Y(ED8._Q39/12Y2S.T%BO4_&CJ
MTC,JL>DQL<8T&K., J.BN0441J8?FY)O*.UL2N'";BJRFHIFIL(D,DQ%LUTB
M Y+/(0OSD%@@GF%G#ED&=C.QU4QL,1,;9F)+71=&\7,;R"S^U@9:FE_(!O(2
MPQ2:_*\UL+-NGMPIZ*41ZC1.HF-_?@[4_V[$-_XJ]RWQK>SG??O]E.\O@^^8
MG:N&.P<J9)?1O>!$J0"9N_<DTR[E_3,N")R$FB[EG/5=N%\(V@X7#!ION>PO
M4$L#!!0    (  E*"4_)25J8TP$  %X$   9    >&PO=V]R:W-H965T<R]S
M:&5E=#4P+GAM;(54VV[;, S]%4$?4,67-$%@&V@R#!NP 4&';<^*35]073Q)
MCKN_GRZNZZ9&]V*)U#DDCT0Z&Z5ZTBV 0<^<"9WCUIC^0(@N6^!4W\D>A#VI
MI>+46%,U1/<*:.5)G)%XL[DGG'8"%YGWG561R<&P3L!9(3UP3M7?(S YYCC"
M+X['KFF-<Y BZVD#/\#\[,_*6F2.4G4<A.ZD0 KJ'#]$AU/J\![PJX-1+_;(
M*;E(^>2,KU6.-ZX@8% :%X':Y0HG8,P%LF7\F6+B.:4C+O<OT3][[5;+A6HX
M2?:[JTR;XSU&%=1T8.91CE]@TK/%:!+_#:[ +-Q58G.4DFG_1>6@C>13%%L*
MI\]A[81?QW"2;B?:.B&>"/%,B#XF)!,A>27XVR2A,B_U$S6TR)0<D0J/U5/7
M$]$AL9=9.J>_.W]FU6KKO1;)_CXC5Q=HPAP#)EY@HAE!;/0Y1;R6XAB_H\=O
M$YS>(_:[]0S)JHC$\],W(G8W(@)FZS'B(Q'I:HIT)<7^1D;ZWQ1D\2P<5.,[
M6*-2#L*X"UAXYR%YB-VSWOB/=GA"K[^&"9/WG:JF$QI=I+%-XY^VEM* +7!S
M9VMK[;#/!H/:N.W.[E5H^6 8V4_33.9?2O$/4$L#!!0    (  E*"4\HW4?0
MP ,  ,T1   9    >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;(V8;8^C. S'
MOPKB RQQ2'BHVDHS+:L[Z4X:[>EN7S-MVJ(%T@,ZW?OV%RC3;6TSTS<%TI^=
MV,;\(?.S;7ZT!V,Z[V=5UNW"/W3=<18$[>9@JKS]8H^F=O_L;%/EG;ML]D%[
M;$R^'8RJ,I!"1$&5%[6_G ]C+\UR;D]=6=3FI?':4U7ES7_/IK3GA0_^^\"W
M8G_H^H%@.3_F>_.7Z?X^OC3N*KAZV1:5J=O"UEYC=@O_"6:9E+W!0/Q3F'-[
M<^[UH;Q:^Z._^'V[\$6_(E.:3=>[R-WAS:Q,6?:>W#K^'9WZUSE[P]OS=^]?
MA^!=,*]Y:U:V_%YLN\/"3WQO:W;YJ>R^V?-O9@Q(^]X8_1_FS90.[U?BYMC8
MLAU^O<VI[6PU>G%+J?*?EV-1#\?SZ/_=C#>0HX&\&KBY/S((1X/PEX'ZT$"-
M!NK1&?1HH-$,P27V(9GKO,N7\\:>O>9R/QSS_K:#F7;EVO2#0W6&_UP^6S?Z
MM@R3=!Z\]8Y&YOG"R!LFB>Z1-47@2@1N ==52&X5SY*8R_L)5I1(8K2&3YUD
M'SJY6V;()BL<[-6M?8)R=4&B :D'1$.8HHRN**52 8A:4RI-8HE2GS$4I"KE
MXU)L7(K$%:8"!<8Q@,)Z@%D_P&0?,W<!:38@S3B0O(.(=1!]7NF(Y#T,A=(H
M)922J93XUJ54!"GNPXQ2.@PCS<<5LW'%#U2:8T(4%L<H%!3'H/1D'!/Q 25L
M0 GC8**G4]9!^GFE4Z9;-<K:BD):1"C<-85 1'B^C*.4G&@ $/QS73Q0:19"
MJUFQ$'Y4,9 2:+J,A:;"FI K8%Q,=#:P6O,$\O.*C\Q=R:,HQIFAE(YCW-L,
ME8H42Q-# <APXE8&7I^ "A13= HI@?N;A7"#LQ#N<!:::''@Y0FH'B@QE1E>
M$( J BVZID4'P ]TA@I%(G!J*!5'"DLW0VD=347&*Q50J6)J3B$E2*-S$&ET
M!@+2Z!PTU>B\4 %5!@53C<Y+ U!MH#5/J#Z'^!5KQ5&ID#@UE%()X'<;AM(:
M)E[7@-<LH*+%U)Q""DB?<Q#I<PXB?<Y!$WTN><V2C#[ 1#=(7A\DU0=2\Y&Y
MJZ9,<<TY*HV0KS5#*4V$CZ%THL1$9+QL22I;M.8,1&O.0O@UG87PBPH+X5LY
MN/D4K4RS'_8%6F]C3W77?VC=C%[W'IZ&K0<T_@RS%3#C:YAEEYV%7^XO&QU_
MYLV^J%OOU7;N WKXS-U9VQFW=O'%/7L/)M]>+TJSZ_K3V)TWEPV&RT5GC^/F
M27#=P5G^#U!+ P04    "  )2@E/VQ:\SP "  !+!0  &0   'AL+W=O<FMS
M:&5E=',O<VAE970U,BYX;6R-5.UNFS 4?17D!ZB#(1^* *E).FW2)D6=UOUV
MX!)0;<QL)W1O/]NX-($HZQ_L>WW.N1]<.^F$?%45@ [>.&M4BBJMVS7&*J^
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
MN@R7@$(M]311<SY="5,@V3#?=FBY<HM_4$L#!!0    (  E*"4^*:JRS^ $
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
M.4G=3%6;#]?)T)&LLU<E&N_K\B]02P,$%     @ "4H)3T]%';;L @  V0L
M !D   !X;"]W;W)K<VAE971S+W-H965T-3DN>&ULE59K;YLP%/TKB.\M7#]X
M5$FDI=6T29M4==KVV4V<!!5P!D[2_?N91Q&QK]<M'P(VY]YSK_$Y>'%1S4M[
MD%('KU59M\OPH/7Q+HK:S4%6HKU51UF;)SO55$*;8;./VF,CQ;8/JLJ(Q'$2
M5:*HP]6BGWML5@MUTF51R\<F:$]5)9K?:UFJRS*$\&WBJ=@?=#<1K19'L9??
MI/Y^?&S,*)JR;(M*UFVAZJ"1NV7X >X>".T">L2/0E[:V7W0M?*LU$LW^+Q=
MAG%7D2SE1G<IA+F<Y;TLRRZ3J>/7F#2<.+O ^?U;]H]]\Z:99]'*>U7^++;Z
ML RS,-C*G3B5^DE=/LFQ(1X&8_=?Y%F6!MY58C@VJFS[_V!S:K6JQBRFE$J\
M#M>B[J^7,?];&!Y Q@ R!0#[:P = ^B_!K Q@%D!T=!*OS8/0HO5HE&7H!E>
M[U%TNPCNF%G]33?9+W;_S"Q/:V;/*Y;!(CIWB4;,>L"0.899F'L70ZX1#RZ"
M\@D2F2*G2@E:*>GCV;R*Q"IB@"0]I.XA'#*:686\A[JJA:*U4+>6U-,,0Q,P
M-T%F+=B:.75FL?GA-!REX0@-M6@&#)_1$.XA25"2!"%A%DGBD-Q0DA*<)D5I
M4H2&6S2I0Y,F>>IYM1E*DR$TUCY;9PX-H[.6KUARE"5'6%*+)7=9&'AZ@1A7
M=XSP9+:\8X<(B.?5@,=%P.6Q]]F(N>HG\6UGP#T WC>!]8BY7C<.B8<(%S@@
M"L]RFXDZ3!DPXMD(@#L!N%; G:5CKGR $H_C .X%X)H!MV4*KAG<Y,RW=+@=
M@.L'W-8I('Y P&>A@!L"((Z0QS;3?UD"X)X B"GDX$F!"QX0Q>>VXX,K>4(X
M]WTF<<T31/,Y]:3 Y4P0.3O%$DS/'ML@GD\Z(N?<(Q^""Y4@0G5+I<ZGE":I
MQ1/-CDS=H?>K:/9%W0;/2IO35W]&VBFEI4D8WYJN#^:</0U*N=/=;6KNF^&P
M.0RT.HX'Z6@ZS:_^ %!+ P04    "  )2@E/](Z!J"@"  !=!@  &0   'AL
M+W=O<FMS:&5E=',O<VAE970V,"YX;6R-E6]OFS 0QK\*X@/4_">)"%+)5&W2
M)D6=UKUVR"6@&DQM)W3??K8AC!BWVIO8/IZ[^STDOF0]9:^\ A#.>T-:OG4K
M(;H-0KRLH,'\@7;0RB<GRAHLY)&=$>\8X*-.:@@*/"]!#:Y;-\]T;,_RC%X$
MJ5O8,X=?F@:S/P40VF]=W[T%GNMS)50 Y5F'S_ 3Q*]NS^0)356.=0,MKVGK
M,#AMW4=_LTN57@M>:NCY;.\H)P=*7]7AVW'K>@H(")1"5<!RN<(."%&%),;;
M6-.=6JK$^?Y6_4E[EUX.F,..DM_U451;=^4Z1SCA"Q'/M/\*HY_8=4;SW^$*
M1,H5B>Q14L+UIU->N*#-6$6B-/A]6.M6K_U8_Y9F3PC&A&!*D+T_2PC'A-!(
M0 .9MOH%"YQGC/8.&[ZL#JO?A+\)Y<LL55"_._U,NN4R>LVC=9RAJRHT:HI!
M$\PTJ^1>LEM*_$F!),!$$=@HBF#9(34Z?"JY:Q%:C88Z/[HS:K@H!DVB->VH
M\?RU0;)4K6//B^PPD14FLL 8AHM!$\_:Q$EBLBQ%*V_U 4IL18DM*"L#)5XX
M#M=KST!9BF();$=)K"C) L7W0@-ET*2S+MY#'!DH-E'Z 4IJ14DM*$:7(OT?
M%)LHC0T4-+NM#;"S'FS<*>FEU4-U%IUFYV.@;_L_^3!X?V!VKEON'*B0,T/?
M[!.E B2+I'.=2L[ZZ4#@)-0VE7LV3+SA(&@W#G,T_:/D?P%02P,$%     @
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
MJLG8/[299G.P,.:U3EQ;VQ?E"466G)WWV(5S3/1WEC^ NJ%>Q5Y&Z^9AF<Y
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
M:WM/8%M95A/Y* IOG'?;B]4G00B">AA$ ]3*@]X E )2!4I=V.A&V!J#'JQ
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
M*0+'(AEM[M\<=%)2^JV)5_1%")B9KX"/H5HWCH/5M05EH/$%/PDT#/"Q(*E
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
M2P$"% ,4    "  )2@E/'R// \     3 @  "P              @ $
M7W)E;',O+G)E;'-02P$"% ,4    "  )2@E/)^B'#H(   "Q    $
M        @ 'I    9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    (  E*"4^W
M"E&*[P   "L"   1              "  9D!  !D;V-0<F]P<R]C;W)E+GAM
M;%!+ 0(4 Q0    (  E*"4^97)PC$ 8  )PG   3              "  ;<"
M  !X;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%     @ "4H)3X^PS+^4 @
M"PH  !@              ( !^ @  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM
M;%!+ 0(4 Q0    (  E*"4\PG^$LF 0  "87   8              "  <(+
M  !X;"]W;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4    "  )2@E/(LTG
MH6,"  " "   &               @ &0$   >&PO=V]R:W-H965T<R]S:&5E
M=#,N>&UL4$L! A0#%     @ "4H)3S8R''Q$!   '10  !@
M ( !*1,  'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4 Q0    (  E*
M"4\&E?LR&P<  (PN   8              "  :,7  !X;"]W;W)K<VAE971S
M+W-H965T-2YX;6Q02P$"% ,4    "  )2@E/_KK[IF,$  #W%   &
M        @ 'T'@  >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL4$L! A0#%
M  @ "4H)3Y%%6?2S 0  T@,  !@              ( !C2,  'AL+W=O<FMS
M:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0    (  E*"4]Q?.Q;MP$  -(#   8
M              "  78E  !X;"]W;W)K<VAE971S+W-H965T."YX;6Q02P$"
M% ,4    "  )2@E/\HO^K[<!  #2 P  &               @ %C)P  >&PO
M=V]R:W-H965T<R]S:&5E=#DN>&UL4$L! A0#%     @ "4H)3U<%<@FX 0
MT@,  !D              ( !4"D  'AL+W=O<FMS:&5E=',O<VAE970Q,"YX
M;6Q02P$"% ,4    "  )2@E/.JA<2[<!  #2 P  &0              @ $_
M*P  >&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0    (  E*"4_*
M#6 IMP$  -(#   9              "  2TM  !X;"]W;W)K<VAE971S+W-H
M965T,3(N>&UL4$L! A0#%     @ "4H)3\6CJBZV 0  T@,  !D
M     ( !&R\  'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q02P$"% ,4
M"  )2@E/UE?P-;8!  #2 P  &0              @ $(,0  >&PO=V]R:W-H
M965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    (  E*"4\OZH[4MP$  -(#   9
M              "  ?4R  !X;"]W;W)K<VAE971S+W-H965T,34N>&UL4$L!
M A0#%     @ "4H)3^VW'%VW 0  T@,  !D              ( !XS0  'AL
M+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    "  )2@E/C04]8;<!
M  #2 P  &0              @ '1-@  >&PO=V]R:W-H965T<R]S:&5E=#$W
M+GAM;%!+ 0(4 Q0    (  E*"4\X&WM6M@$  -(#   9              "
M ;\X  !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#%     @ "4H)
M3V\W<>NW 0  T@,  !D              ( !K#H  'AL+W=O<FMS:&5E=',O
M<VAE970Q.2YX;6Q02P$"% ,4    "  )2@E/,^GY*<4!   W!   &0
M        @ &:/   >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;%!+ 0(4 Q0
M   (  E*"4\"U5!GQ0$  #<$   9              "  98^  !X;"]W;W)K
M<VAE971S+W-H965T,C$N>&UL4$L! A0#%     @ "4H)3_TV7LBV 0  T@,
M !D              ( !DD   'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6Q0
M2P$"% ,4    "  )2@E/&BY?K[8!  #2 P  &0              @ %_0@
M>&PO=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    (  E*"4\^OR22
MW $   $%   9              "  6Q$  !X;"]W;W)K<VAE971S+W-H965T
M,C0N>&UL4$L! A0#%     @ "4H)3U@3<T6V 0  T@,  !D
M ( !?T8  'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"% ,4    "  )
M2@E/#4LT/L\!  "<!   &0              @ %L2   >&PO=V]R:W-H965T
M<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    (  E*"4^Z@'QCMP$  -(#   9
M          "  7)*  !X;"]W;W)K<VAE971S+W-H965T,C<N>&UL4$L! A0#
M%     @ "4H)3W&],OBT 0  T@,  !D              ( !8$P  'AL+W=O
M<FMS:&5E=',O<VAE970R."YX;6Q02P$"% ,4    "  )2@E/6F<)H, !   W
M!   &0              @ %+3@  >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM
M;%!+ 0(4 Q0    (  E*"4^ ZPNMMP$  -(#   9              "  4)0
M  !X;"]W;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%     @ "4H)3_.9
MAE_! 0  -P0  !D              ( !,%(  'AL+W=O<FMS:&5E=',O<VAE
M970S,2YX;6Q02P$"% ,4    "  )2@E/^F^^,Q "  "X!0  &0
M    @ $H5   >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+ 0(4 Q0    (
M  E*"4]B\G6M\ $  .T$   9              "  6]6  !X;"]W;W)K<VAE
M971S+W-H965T,S,N>&UL4$L! A0#%     @ "4H)3^\,<4.* @  D @  !D
M             ( !EE@  'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6Q02P$"
M% ,4    "  )2@E/50?S67\"  !V"   &0              @ %76P  >&PO
M=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    (  E*"4_("[K3*0(
M #X&   9              "  0U>  !X;"]W;W)K<VAE971S+W-H965T,S8N
M>&UL4$L! A0#%     @ "4H)3U97 Q:Z 0  $00  !D              ( !
M;6   'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4    "  )2@E/
MB/42IP\#  #>#   &0              @ %>8@  >&PO=V]R:W-H965T<R]S
M:&5E=#,X+GAM;%!+ 0(4 Q0    (  E*"4\VHX3S>@(  '\(   9
M      "  :1E  !X;"]W;W)K<VAE971S+W-H965T,SDN>&UL4$L! A0#%
M  @ "4H)3['">E/% @  APH  !D              ( !56@  'AL+W=O<FMS
M:&5E=',O<VAE970T,"YX;6Q02P$"% ,4    "  )2@E/IF$7(/D!  "/!0
M&0              @ %1:P  >&PO=V]R:W-H965T<R]S:&5E=#0Q+GAM;%!+
M 0(4 Q0    (  E*"4],P 67+@(  &H&   9              "  8%M  !X
M;"]W;W)K<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @ "4H)3R6!-7;R
M 0  -@4  !D              ( !YF\  'AL+W=O<FMS:&5E=',O<VAE970T
M,RYX;6Q02P$"% ,4    "  )2@E/<F2("_0!  "Y!0  &0
M@ $/<@  >&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4 Q0    (  E*
M"4]W5"TP&@(  #4&   9              "  3IT  !X;"]W;W)K<VAE971S
M+W-H965T-#4N>&UL4$L! A0#%     @ "4H)3XQXLCP4 @  1P8  !D
M         ( !BW8  'AL+W=O<FMS:&5E=',O<VAE970T-BYX;6Q02P$"% ,4
M    "  )2@E/5NDRH^,!   4!0  &0              @ '6>   >&PO=V]R
M:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    (  E*"4]CF9<P 0(  %,%
M   9              "  ?!Z  !X;"]W;W)K<VAE971S+W-H965T-#@N>&UL
M4$L! A0#%     @ "4H)3].^X[T_ @  \08  !D              ( !*'T
M 'AL+W=O<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4    "  )2@E/R4E:
MF-,!  !>!   &0              @ &>?P  >&PO=V]R:W-H965T<R]S:&5E
M=#4P+GAM;%!+ 0(4 Q0    (  E*"4\HW4?0P ,  ,T1   9
M  "  :B!  !X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L! A0#%     @
M"4H)3]L6O,\  @  2P4  !D              ( !GX4  'AL+W=O<FMS:&5E
M=',O<VAE970U,BYX;6Q02P$"% ,4    "  )2@E/.,IG[+("  #H"@  &0
M            @ '6AP  >&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;%!+ 0(4
M Q0    (  E*"4]QA'S:[P$  'X%   9              "  ;^*  !X;"]W
M;W)K<VAE971S+W-H965T-30N>&UL4$L! A0#%     @ "4H)3XIJK+/X 0
M2P4  !D              ( !Y8P  'AL+W=O<FMS:&5E=',O<VAE970U-2YX
M;6Q02P$"% ,4    "  )2@E/B^D>_?\"   U#0  &0              @ $4
MCP  >&PO=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0    (  E*"4]
MO&5'&@(  $8&   9              "  4J2  !X;"]W;W)K<VAE971S+W-H
M965T-3<N>&UL4$L! A0#%     @ "4H)3R5[]SA! @  NP<  !D
M     ( !FY0  'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q02P$"% ,4
M"  )2@E/3T4=MNP"  #9"P  &0              @ $3EP  >&PO=V]R:W-H
M965T<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0    (  E*"4_TCH&H* (  %T&   9
M              "  3::  !X;"]W;W)K<VAE971S+W-H965T-C N>&UL4$L!
M A0#%     @ "4H)3Y1/]R=1*P  [L4  !0              ( !E9P  'AL
M+W-H87)E9%-T<FEN9W,N>&UL4$L! A0#%     @ "4H)3]\C18XL @  V0@
M  T              ( !&,@  'AL+W-T>6QE<RYX;6Q02P$"% ,4    "  )
M2@E/+N :LM($  !9*   #P              @ %OR@  >&PO=V]R:V)O;VLN
M>&UL4$L! A0#%     @ "4H)3Y08Y'(4 @  620  !H              ( !
M;L\  'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%     @ "4H)
M3V3'G-'E 0  XB,  !,              ( !NM$  %M#;VYT96YT7U1Y<&5S
;72YX;6Q02P4&     $4 10#5$@  T-,

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// 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)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* 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;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.19.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>161</ContextCount>
  <ElementCount>352</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>47</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>4</UnitCount>
  <MyReports>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Condensed Consolidated Statements of Income (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-income-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Income (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Disclosure - Note 1 - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation</Role>
      <ShortName>Note 1 - Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Disclosure - Note 2 - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition</Role>
      <ShortName>Note 2 - Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Disclosure - Note 3 - Supplemental Cash Flow Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 4 - Fair Value of Financial Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-</Role>
      <ShortName>Note 4 - Fair Value of Financial Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 5 - Share-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation</Role>
      <ShortName>Note 5 - Share-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 6 - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-6-inventories-</Role>
      <ShortName>Note 6 - Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 7 - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-7-leases</Role>
      <ShortName>Note 7 - Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 8 - Income Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-</Role>
      <ShortName>Note 8 - Income Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 9 - Segment Reporting</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting</Role>
      <ShortName>Note 9 - Segment Reporting</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 10 - Other Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-</Role>
      <ShortName>Note 10 - Other Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 11 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-11-income-taxes</Role>
      <ShortName>Note 11 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 12 - Indebtedness</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-12-indebtedness</Role>
      <ShortName>Note 12 - Indebtedness</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 13 - Acquisition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-13-acquisition</Role>
      <ShortName>Note 13 - Acquisition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 2 - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables</Role>
      <ShortName>Note 2 - Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition</ParentRole>
      <Position>21</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 3 - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-tables</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 4 - Fair Value of Financial Instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-tables</Role>
      <ShortName>Note 4 - Fair Value of Financial Instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 5 - Share-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables</Role>
      <ShortName>Note 5 - Share-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 6 - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-6-inventories-tables</Role>
      <ShortName>Note 6 - Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-6-inventories-</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 7 - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-7-leases-tables</Role>
      <ShortName>Note 7 - Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-7-leases</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 8 - Income Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables</Role>
      <ShortName>Note 8 - Income Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 9 - Segment Reporting (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables</Role>
      <ShortName>Note 9 - Segment Reporting (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 10 - Other Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables</Role>
      <ShortName>Note 10 - Other Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 12 - Indebtedness (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables</Role>
      <ShortName>Note 12 - Indebtedness (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-12-indebtedness</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 13 - Acquisition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables</Role>
      <ShortName>Note 13 - Acquisition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-13-acquisition</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 1 - Basis of Presentation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation-details-textual</Role>
      <ShortName>Note 1 - Basis of Presentation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-1-basis-of-presentation</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 2 - Revenue Recognition (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-details-textual</Role>
      <ShortName>Note 2 - Revenue Recognition (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-tables</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details</Role>
      <ShortName>Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details</Role>
      <ShortName>Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 4 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-4-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details</Role>
      <ShortName>Note 4 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 5 - Share-Based Compensation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-details-textual</Role>
      <ShortName>Note 5 - Share-Based Compensation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-tables</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 5 - Share-Based Compensation - Compensation Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-compensation-cost-details</Role>
      <ShortName>Note 5 - Share-Based Compensation - Compensation Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 5 - Share-Based Compensation - Summary of Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-summary-of-stock-option-activity-details</Role>
      <ShortName>Note 5 - Share-Based Compensation - Summary of Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 5 - Stock-Based Compensation - Black-scholes Option Pricing Model (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-stockbased-compensation-blackscholes-option-pricing-model-details</Role>
      <ShortName>Note 5 - Stock-Based Compensation - Black-scholes Option Pricing Model (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 5 - Share-Based Compensation - Restricted Stock Unit Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-5-sharebased-compensation-restricted-stock-unit-activity-details</Role>
      <ShortName>Note 5 - Share-Based Compensation - Restricted Stock Unit Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 6 - Inventories - Summary of Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-6-inventories-summary-of-inventory-details</Role>
      <ShortName>Note 6 - Inventories - Summary of Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 7 - Leases (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-7-leases-details-textual</Role>
      <ShortName>Note 7 - Leases (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-7-leases-tables</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 7 - Leases - Lease Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-7-leases-lease-cost-details</Role>
      <ShortName>Note 7 - Leases - Lease Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 7 - Leases - Aggregate Future Lease Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-7-leases-aggregate-future-lease-payments-details</Role>
      <ShortName>Note 7 - Leases - Aggregate Future Lease Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 7 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-7-leases-future-minimum-lease-payments-for-operating-leases-details</Role>
      <ShortName>Note 7 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 8 - Income Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-details-textual</Role>
      <ShortName>Note 8 - Income Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-tables</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 8 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-8-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details</Role>
      <ShortName>Note 8 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 9 - Segment Reporting (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-details-textual</Role>
      <ShortName>Note 9 - Segment Reporting (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-tables</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 9 - Segment Reporting - Net Sales by Market (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-9-segment-reporting-net-sales-by-market-details</Role>
      <ShortName>Note 9 - Segment Reporting - Net Sales by Market (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 10 - Other Intangible Assets (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-details-textual</Role>
      <ShortName>Note 10 - Other Intangible Assets (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-tables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 10 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-definitelived-intangible-assets-details</Role>
      <ShortName>Note 10 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 10 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-10-other-intangible-assets-future-amortization-of-intangible-assets-details</Role>
      <ShortName>Note 10 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 11 - Income Taxes (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-11-income-taxes-details-textual</Role>
      <ShortName>Note 11 - Income Taxes (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-11-income-taxes</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 12 - Indebtedness (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-details-textual</Role>
      <ShortName>Note 12 - Indebtedness (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-tables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 12 - Indebtedness - Long-term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-12-indebtedness-longterm-debt-details</Role>
      <ShortName>Note 12 - Indebtedness - Long-term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 13 - Acquisition (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-13-acquisition-details-textual</Role>
      <ShortName>Note 13 - Acquisition (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20190630/role/statement-note-13-acquisition-tables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 13 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-13-acquisition-assets-acquires-and-liabilities-assumed-details</Role>
      <ShortName>Note 13 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="ufpt-20190630.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 13 - Acquisition - Pro Forma Information (Unaudited) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20190630/role/statement-note-13-acquisition-pro-forma-information-unaudited-details</Role>
      <ShortName>Note 13 - Acquisition - Pro Forma Information (Unaudited) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>ufpt-20190630.xml</File>
    <File>ufpt-20190630.xsd</File>
    <File>ufpt-20190630_cal.xml</File>
    <File>ufpt-20190630_def.xml</File>
    <File>ufpt-20190630_lab.xml</File>
    <File>ufpt-20190630_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://fasb.org/srt/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/invest/2013-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/us-gaap/2019-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>78
<FILENAME>0001171843-19-005371-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001171843-19-005371-xbrl.zip
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
MHHI61U;8[5Y0]L9A:[(P,+@D*+;GZG/O7Z:W#!,O65)&(@=C<XM;_ &AIG.
MN0U1IN4#ZH1A=46\ERY6;">0)Q0S*9'7<XR#V)%XA\1="X@N"*^507B''N;L
MJYB_W:53ZJ>;!_%N06+V=.$4!8YD>]IP4NQ4H0MY:8A'TTG!H[86A;P<6;8[
MS-S$>EC)\E]W01(I:,@H\?@EW*J]E)/#CO:9.K9PB^.FEVUUX0)AUB.5#-BY
M/8>U=32-H/P?;.E8VPLK)V(MO'G@F';Q:D7D2>YIZ@N[?'EF])]JSV0]5Q$*
ML>VYA&7:W*C@1PG\#W*'TJ<\1_9_/_E,=8KB&[DWG!6TWZLA7YG6;!VSJV:V
M-BG8IN5$S&ZT]GN(C#)0-/$1 ;&-(H<#968Y6(KX&)+A^'=65I'LLN[IT9/4
M:_;.M()F2G7$.\B0Z%A?>7A0X:BS.EB?U%IQ.,LV?-T=5GL/^^N]P^)%ZX[9
M^SKJ=M=7[;C9J?[Z2EBMH%V(M_)*Z[M]9UH6V*O)0O[=M5;U6<(%SV>Z.ZUV
MWT>\G!NML/I??!X>G'EC/IUCHC78';X6.009R97F"S>6YO&LJ%YSXD&MQTO%
M3[YW[K3<G:-PV,PQ&Y"O:?B86.C%+[>ZD]/*$P]K/3:MY!"J8_EQ+!\5;(=Z
M:MK5W[ XXQA3X'=T9^4MD=8VG99V?'\N6JKV8_)DTDGIM)*">2F"/B?[ZO]/
MA8WTQEM5]',F/@;$R4Z"*  E:@&Q)T&TS+S[*_-/Q:T1Y%I(L[_8_E28=P4K
MI&H880_$%EGFPB3&K1/OB$<V0)B*&V?(VQE;)2&K'+&L3@A)5$2]'$K+;:0+
M#EG3$^&:5K3A9"])H[F/ G-_ZY&)L-$+8% 3E/O%4YBL_EZ9:76!64 3B%O\
M[/0QJ@C,H#?G(3U^<II3EB)J $(50._O\"-NS%AN694'>KL5RF?'#9\/(_XO
M[8S>8B4R4@-A%^GBPQ58=;"7:D,S$;;5V>E7>Q+P2U H" R-&\$58=MOGW73
M97G+'S9L$XO;5VYUR-W;P$Y8!>3]6!X5I]0.&M628)?[59) J.2Q?5I;2%#*
MK)H(M94\G+4'IW*+6BBILC;9+L-Q#$[4NUI@TT4L<'-#W =S3NB-8V7S1"W*
M$TU4:@:;K0V5K69K0B .!W8: [N7V)JHJ@SVM!V.MA5#]<"6D79-%=J2$WFJ
MS>J@;&$QUE2AQX/+]C!@/Y([+ZX8=4!-"M[^;#1K16&*G2.9_/9GLA+&]E7=
M >T9M#:34U6XV]7;3+JT#1!,8J!UM /9D6W,!$+"!(0=X9DV=M2%SZ9]MCWI
MSFC'M#,K/<B5O?WJ"01#^DSN7%]W-Y+<DU Q]:0D\-Z22&"PKG5[TY-T*N'G
M.\=UG4?B]B06,\82B3U'TFW05Y3,??SF](#_D,[6@(5M6>@1G*\(1D"RPI/?
M"&7%RJ0+@,GTI/-[E[#">=(;1(2=UO[M";">_U3HM?@%XZ<?I4>P&D WN9YN
MLK*7"5K%#\Y^HA+U[ZAIF+J+Q>]V9KX)?]U(OP C=.PI3M,S(5 ?=/L/G 4
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
M85Y..]9DO>W?FUM<9>;+UC^]!I9D\N\NCZC./**3Y@T]BYAHEL= I>^HMA"
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
MINZ:)(@="Z,4H^3,#+19^C/J1W,%,++I =^U[ZX=BOG2=+O(01P+1L**EVQ
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
MK9./MT"\HR.D0:\9.-0= !'H-0.P@%XS (F]D(!>,P ,Z#4#L."%!?2:.65
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
MXSLP&/BJN.<S2283D9^X,GIQ8:3DAN0_7&2GAF&;GW#N2W7F@:3BD7EP5_+
M+_QM'T@VA;,%0GUBKPJ$\[OGBSK@88:@@W.-.CCH,17,_D ='- !YBB9#LX]
MZ#"#<@=A'4H\'B6">$DQG4 ,!(R,6,#PM)+7@Z<I8UO0TR<;JZ%WELM7S'(0
M6%_F\G6P6F<I$<^+\M- K249%+< NM<4RQ8D]?E2PQ51*)1+KW9I&RRA=H!=
M8VUS?C>/3R$EZ"7?)<D2@<@E&-=2(3 /EPWQ+>#W#:6T!6=]?MAT_=9=N)^'
MW.M<&8<D2R0BAV"PSI3)9S,=NIO6:"W.7,R9V,*6/B%=OR+<36$,G5;Z(1,;
M 6P3=K;0HD]BUZ+%7?YY!F)U,:71E3(-0R)>9D?8N#Q6]V'<S![Q$)M7!9(Q
M=UNXTF?,&W!UGTDY.TO'N552.L-<R@YF<T>C?32.'@7$^PZ#=:@L"R?'@GDX
ME@FY3P-+.&O-WA+0?JG9E*V K@7:*8KIYG(6*+O+Y'2N4<X.:HTQ!1@G8++L
M8"4T=0KROU$\,^1M"V3Z!8*&:/9U)F,>S;X!YRZ6U;^'M]!1%;>M0&D-+K9
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
M.Q%@T'G3HU90[\\$&?83:P?TSCPPRVALK; V:V M"4@QI1,I:!X"2"'G\>4
M_GS A2IHO "DC*$3,91' *[V*)IV'^L!0C6^#I&8!G'"GD2+C4_,O\)7SQ-;
M#@_JDI8WR\>14'V2\@WL:*YPB>MGS$,B>2NIW+:E@]+MX#;O&C.@H4HEX2N\
M_%<3:S29PM]5YW5E9U$+>8$ICK65WH94/N#45\=I,9F3>KC!C0@=,B%&](J(
M.5LV(QO%E=?KC6B\W/7>4OX!W3G7UL QI@,"::<&P0:5AA0"L,J:&&.,1K-
M@&O9F,"&&@:\]0]]68#:HX$ ):\F68>OE8;1CA@>N"96I78&"#"W[V,88RLG
M@P!HXP*0,9H2&O=0U'4E&;G**/V1R*W!Q>*;4.'>#:&(ANH1"5/R6*6!]A.
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
MA\.3VYZ314'F)$7B;Y2FM"ID]#)9T9RD!//'/^Q]^:XCCNW@[T9/]/I'K[^
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
M?U:\W+6;=LN9#3CL $P>$9P+=,-(JBE>IVPT  &;&Z[.,.+-9KUJK9INTS9
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
M'@%7IF2HZT Q)]=+3FY[',REP&MO.W&RJ;F:&"*XY-M17R/M$QD&E=47=%E
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
M/!S[*K0UM?-"PT#JB9X+ZF<Z3?1D4#\#>:*GA0;PA4SMQ% OGY<EL]"N91K
M7++D'-K%35:VE,_0R$\)J4/PB2"L.?:4?%O?&)"@YLJ I*CO#) UX.L&/*GD
MP:B2UL>A*C%(@<L$K[J&3\8DP4N(97P&8A@FAF$Z'>M@M9BB?)U)5XO>K"P9
MN:E*:0A=TY?I%CO9& HWQ7 #1^=1O#J^G9N]NSH^WJ0>W8+1+1C=@E#NA.M^
M 1HT3^#0<&2BSL')W/3V_F."MC>))RM&DSEE2R3,J/K?^MNJ0%5&I G5S:KL
M]Q O=N,0)$;+\'59AHI2(T<$YSB5.>^*<^#:1OY!\Z:@VVPK_^MJ;_K#Q];]
M]HBE\(>CVTA45^LPM 9!_@6C)U+%:F\_-O-E-0QHAI]=A]R=Y=9[E0,SS3?$
MVEY,?W@K(2$_%2NPCD TU]NTW%&/R_.Y^C:ZD*3 FOC6.^$=9DMSISP4%M>E
M^SHP]ZQG](7&1#K@'C.[,A F $ [X[G)^0>=,!&XT^SV;X?:F1B@O*%CB"N$
M(^O1K1W=VOOGUG8&4A-U9H>W'2;J_NYH1DPT)[:?,V*B.;%]W1$^@QP?$UZM
M5ODZ+I6DB-\F\YQ^>^+<Y^DMSJH<UWEAYN;=(B$>*/$2+O'&1XRIQ)B*L&5.
MI>"B_')[6>OYO$[;K2]S$!NJ\N!DM]X!BH>C%1%KHZ[/DA%9%$1@AK1B#&<'
M5?F9EO_&Y04BRHOF'+N'*FPM$ [FDA#U/9CJAB&(+K&8RM)$<6LK_^1^IH74
MK:?%G:"F09HG F(6J?B[WLEG-[R^#T7!B'/_Z"?=OYS1JYVM^E!(PXG8J$^W
M^[1!A!Q[1S=P]#!%#U/T,#UGJ8L6 >>S=^6"6D(*>"^U#Z-ZM#=1UV%') 5.
MA-WYH'V-$G#2W6T.^AB>GIQC8O_*9#50>;->P6E.,EDX-'ELP&O/C:S:>TMS
M,>D\P7]5@MAM(JR]^VNX9XWMX!J:4CL7EL+QL5-V?R=?7)U7:M-^ '_,8;6L
M\J8J^GR.TY*?SS_C;]L0QP4C8GF(%W1:7&!&:'8^GV6T+H[=2G7_X?S;2;,L
MJX4-Y5*'G19K;:>]^\FJ3PA6_JQXN2Y2DTMQOZ9B2Y:WIDH9%V_@A++V@L)*
M1GN/&'0:KJGB50DF&AF58;^N4S+$Z/ZGY[A6<Y(66@@NM)G4VK83)#U\XK=-
M^B:0%,U+&<DI<+8)!!IN^M,U#N#^LCP4#>C8<T.*5"1"J?;3VWV&"NA7?;9F
MN>9(A%6?Z-?>0[^V!,6GG%<X.ZJ81)4UE&PDWFV1=!\)&MO;2VOX\3UF*>'*
M RC=!P+#]&\HK_ 0K]IB(&!,]W_1YG$"L;PVPQM]KN.IM:%_HJ\91KQB#^:;
MPC4M0P7.!DS$=]B)P?E%]?8-=?;&!#L[HLO&MWM!M)/I!,[+:WZC[CX<<,$+
M:R9MK#)PR<G6W!GU:K"(M^8HUS"K,<;!8:@;2Y9L*\4 T2^V+TH/QL I%@>V
M^IB%$SW_T-=&FN@)B+[VL"7;T.J"][0.+;F&5A.\OU_4DG%H]<$'"^19\@^M
M2GC_XVKO/2:<N;[2X0*1MI,!!F$-FG?@\S3;S\D:7R<,KRB3=-85RSG*,4]N
M'I(E8E_%YVXGU#J.[N7462_:XDFRUW62K-57RUFYXZ<5GYZ3)[[ZXQ/ZD[)#
MH2*%UF=MH41](S]$?D9+?#Y_0D7KR[9J.R&2^PBK(IEMAAGE*Y3B(SR7B7_J
M[#I]RR%(J02K5&Y(&B(4;89(ZQ.XO1)3K<LO;&LQP*./ZUHUM-!6S50V&N2(
M:28$C1%5!I^NS0"/_X0SDNJ>W=I@@ >O"W9LJEC(/&8)[C>K3H#?O)(P7Z8L
MB_\R@0P%%DIEKO_B1<A_L %#)"TYDZV(VO48*>:=Q+ISP \<ZADQ0"/J!$@F
M=Y+2!AB""67;O0AJWGY '0_M*8# @]5N[TR/%,$$C]R8TB%0,($CQ_=D85:
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
M*E/*P7GARI_!%!0(H*L&@1FQI<)NC/*E*HE?;BC%297GX+;@(]DLF#ST,GX
MT#,(G)"AZ%K ZA?( N4MS!?_:#^ZW8[>ZM7VT*\$B]/\)GHZ)46<TJ+*,011
M'C-HOTLD3^430XD9FMHUI]=V#0..MM#1;P ?<03^OR",KT1M:D)"5S;,F]=+
M"E$HS))J8E.6(LC*Q)11GLVJ13,*U8MA\^8ULVQX1 _J!*P=*02L>;5OU+=H
MU,S1I/M78NWP+?9MY^P G9N%PY%S+6-"LF(!5RD.]*49-[M[[,.LZ=DX9^?,
M6Z8E$GQ;X@268G2X#$YA]T3I!>7G&'G+W39;X',Z.X9W8/S 4""K,P9\MXQ
M, KC$,'!&>RR7Q\D/]P',51'6]AS8KY!\H_SWCA-7W  5)/!^2M-V31,XS_[
M3DSNASR'(*A^#+TE)S^T8%]^"-3(9KO.3Q[:P9=[NVB>GY\]7"H.8,W@+M'B
MY-YI5 -Z\?>&PVUTEK'4NS=^TSF:WR6DB.[N\KJ U>WSDEU?ENOH'S1? D(%
MA(S=49H4RRA+E@7.'TC,?EO0-%DF(N=<R^#SAHV'Q!*+6(?,3NG\]K2[$J@>
MR5:"/L%*T VL!,(H(:^N0&PEZ+I>";IF*T&OZA($GO/"9\)MABDSSEC([]'=
M47*U,T1R[LH'&AZ:AQ/ZRA,^A&R20FT#_U)2QG%@$;SR8^OY2[=(!#G&![B"
MJI/*[P'*EE7F45PVWGF0RPX=+1Z.FI \''R*& 4^U$YJ+.OW(GYD=7CH!1U8
MNAQ@>!@9;6O0!$\H\9Q4*4]L4!AN(I,>\/"?0&J&[XP23F%0O0:P214^F*.T
M^^ M.[FM-A@F;%+=]K>U=EOC"&)#DF54[DR0+2/0BLS"@!##VZ@@9H>Y?[0"
M)/390'].Z8 PJOU];3=\JI>$HG)GB@Q%8'&():%C6-(LM4P 1K24E6B?N_SG
M-.[]HRB-E,F$^3UE/DKQ")X,R:\"G7^>,.1F*:A3-GE"]J3BS@5XR;T=?^NZ
MU7GKNL'Y^LW0 ZY3@%/>;9T@YNVYMF30T*N_X2@/6#34[=[N/]-ZV##_9QG#
M:AWES_P24$(X->5(+J.X) ^D?+9\M.F"\W32J:(UAX/O6N#*[\B *[K@N**C
M&M<7=@YJ<\2$8]%LFQT*)2#1@^=M&L6_L_LYA=BK&D<HVPR6\)HF.#652EOP
M;(OE5+S\R25GFUZY/ 9DES6VC5!>"FS1)\!VKI)IC2M41-/N5OL_,*&Z%,,+
MWG2%#JDR4KHZ+O6 >3HLU9":PU%YU6):'Y5?&*8O]:#4Y(4)QZ3)!ONIS=,Y
MP$D;<F4B<OK3.JSC,P0^1'6?72.SC6V;I;P8;*1F42#UW0D>6WO";I<D@4;!
M[!\W['):K'">XT3F(#&9PEXDK!14P+8 4IPL]5*PN&;S$*$N#G.)\1WGN^'0
M747".J_FQ?]C_BB@,(^;*E^'\#Q7_&I^F*\O7V5OU(N"C1'<.:>VP:G+5556
MS(06&&V$]]+L@=QT<C<\K8B$?T8_:A!#9QRQFO-KQ_$\GYR-MU9=)(SVR_,;
M5ATT<['J3\OBUTSA^RG [R_>";:^_QM(*!DK1N,&B.E;E55DG#>:Z4:0<<<
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
M=B6A8 ]#A ^U>K_>I/09XVN</Y 8]^>=?*;<=8L3GF)2\&._^_<36M3QU-O
M%@EW.8=GR*C.\/)E,#I;@(D-.B-J3NR-U_:\VSZM+5"+>=,*#U!EOQ7)$EML
M%^AH#<$U"\07%T09N1<XZGW?OQ(5*:J1G-&\_A6,DS4+#H/$W)1I+[(O7L/V
MKFI6:M<2W</J8K$(N&*BSC*^+J4\+,T^-+4"JWC.06D+HA8C;Y\#(TTS4 YG
M=/_"($ B#C.L^WB(H%2#2GX9YI04<4J+*L<7JRZW7^$4HCV!Z8N#T*O1^DJ6
M9C5DQ(G0G6>3#&OY\(6:;.T>=;0E?B7DC#"]CC^2!YR<9R7;)7*;8N%Q/W[^
M%/V#YB=I5!0#WD:#&0PY7P.2:RX7J"PY+FB+3),I=?N,.#Z((Q32GVFR.]0"
MR6?#Q5LD1]VEAK/8Y^8^:&$Y>K'#S^']LJ9;I<;:X_3W_"*>_(/95?S0J(^4
M&WH3/4&/@'N:0H B,]+[[7[9,_KT&4W?WLTA>WNP-T?1Z)7?"T6FY#E]QG4B
M!V+248H'4A$V5Y0YB>'&+E(Z*B92(J&CF^(!P7;H<;N<,/$%%CB>.MBT\-UC
MN,Z3QWRJ?&*Q6TPSM2]A'\+!1)KMKLFX+N&7[):D*1/,*QQC\@!91@5:HEM\
M1S+>QYB)KYA\+HO4KB\H62)FVD=Q<:Y\)2H2,]+SIY^:,ZOF*BW7SO_GAB%[
ME"5*D0HN07GO%R%'R7D!8X", '18\]SI=EII**"Z1YX-_18KN;^E=XRI,=Z=
MRR=SAG.(])./*M'$<\(7+D76QT=:R)BA=XQI6E=W+N>97.Q*03@T$_MC(JH&
M\=&J^+K*,NO=9ZI$D=FXXH[BN%I7_+)TM*9Y2?XYY*(PG\B^0TX"T-<=11\S
M$Z%RNOY)95:VT%&DO$C_GL<QME1S/BK1>C8R+?<;J'UD7U8]^@Z&L; L@T;K
M,LT$FIMH26[..N3RG5)]@,[[ISBMP#/X@=+DD:2I1'!T/C5.NQX'X<,"O(W8
MK\S:"KI9@D%86^>M+*K?RK(QX7>62J[!.70*+7UWG6C>&:[A6>$+O#)<77\9
MZ3JA\(UQUXF!N=UWG6@?73ATQ,&C5U!"Z]O0G2=4:$Z-"#D;B^=#+K^.JWYF
MW^KAT[MF/0X$3/ J4$%#9?JJV0@]1//L80>N[[HNP14YJ-84OC#U=\MG#AXS
M&%*IJ5"<&I#1+Z<=5P7)<%$PS&Y)QA';1BV.!;SJ?6S(?VI 7+-B@P7JH(&V
M>(0/7]7<"SJ-P)Z?/[:NCU.\R7%,!)9XDV+^L)/MN$1T"S/;GM[TT<42&M["
MH2SA:Q0;Y9]64SR5T-(7NFZU[LJD@S2/BPKNO[0N!-3U;GFO1-6/E-S3J?*)
M>9TJZ=3>BKH/X&!4QMWJF@S?\O:JM<^A6+L*%U$3,OH5H!'OIB4/IB\O90,G
M"$L,^>SFX)>3LN"0CT3M(]OZTHM_Y/+E*!6INT2'@JK<5JT8EL!#KW]\]UIP
M$/O-;N<[N#;7'8_?/^$\)@7N*T2K^YTN'ZG.[X&5.KT.<0T9 EMWFB>T%6SK
MJMS,Z"K87F&1&]]\IG5*NZ- 0IEY"+75#H,UAMXC[S&J"^JO4OH(CRP4#$NV
M1L@I0"7[NW!)HIP' L/B@6@0AX_SHJ$"!#VSL2274# J2UP(W+[S*ZO:/$V-
MMVFBQ+*]@%6=L[5D):.TW%VI-MI$.N6SNI9)X$3X%K6P$2]3IN:>=+P4,^&Z
MPK7&*+@<Y7@#US,F*8!0^?SO!?JF9\7??>-?0!28B6J2=:(PB"X!4(W[C.:*
MN3^?HOQW7%[FA._& 4-8FM)$K":"=GX9M8"CMGQZIXEI59T"7=8E5Q%#$W7P
MY+_C8Q!'%75Q10)9]$*H8Z;B&"YPQ"_[$AB+SL-3Q OCH,=[G'%=B$59G;S^
MI&A^@8M_KR.!]_,:$;U-R5U4FQ7E/6'?U+#R73V[%G3? !T@4ZG.KMS:<15@
M=/O<103S+G-LHFCGUWD 8\66FJ(N.,ESA1F<DX<(3IG!LN6R8:8U8/:F<ZU]
MM_":1E91RH2@*',ND&$JADMI2E4)-=$ : IOL5OR9YHU8MHQQ.6FL>:G)@>Z
M(@C7K-.@P9TA'43JX"6!BKD)[6R59H=-D\K)-'14HCO&=T+AB[NHL+&AY=0"
MW58ERFC)?[4]-Q8(,]T'(RG:,!CW$5SZ^3\+G*8H0C'.RXAD*..]JCI'1NL:
M8( C< 0DF)D3:Y*QDT0<-& *1*C8X%BT]18ILO!A2=8XP#FB*P5TRJ9/%/9/
M."%QE,I%NG> B>#N3.1:/&M@Y@(X$5LS,>O4Y <N!H'@[AW*Q:E9TUU.JPVP
M]YK7KHGKU.HB *?W,P<=IV$H:^:\/=RO2/'[0#JJRB>3K9S#J3U:/%O@(?-6
ME>C<:_F,$2\4BS5G)>3:#A8'4/ED,HL=3NV1Q5JS(6C6OA*=>UELC'@3SUXV
M?<$8.)<?OOTC3$[?W9F<EWBMH9F?OU/Q=7$ MZN:T0DLX1"J0$;O:?_0>N@R
MIP\DP<GQ\Y<"(M>W+9?;_M%CK;>-)S(O(* )T$LW*G@UK-]1.SVY0W?A-M\<
M:H_B$_7R4<7$F<(!(-?,LC$FNGE_+N<52UIXYOIY.LXN-'1G93/2T5)>H4K$
MG,C-YUE203K:T"5?-L:$F_?G<LW-6WCFW#P=9Q?<W%G9C+A9RBM4B9A3G=,I
MCLN<9B26=$H8'&3D<-Z?S+EK>0MP@@-Y.M8N6+J[MAGQM)QAJ!H]IUH<.*?%
M)HKQ*5[AK!BR.P9'&ED?O3,ZMT$:J.C?HO7F+Z@&/L$@L;0,)V:)9+$SDH 1
MOJ(:5/9[KWP?Y4#JXA*+%_61V^/8<,,[HFQ:?_7FMO$686Y^HX2ENM0*RT=C
MR<.CXRUQDK<4X08P="&K0ZN"9P6/$WF JV:1^WN>Q3F."J8OQ7_/LPMX"+]@
MTAJ!*^,CB6Y)RGT9$D8SF,&X?)(R).=ZC6;+/ZHH%2_Z"3ML\IS]$'>C_" 9
MA8=?4!Y:D&ZQ"U2E2'^?J 7B3S0]3PGFINW@A4HZR,3@/)C,^8O4%J"Y?6D!
M:]-8=I%S7=N2(H(=== )8"W*^8&JD2NT$CZ*X[S"B8GVE7]J3>T>@M!GM@><
MWU+=J.L:,,)/H&;'%*G/Y>A)O XN\UFC494^@0!ZU:#R+;L/H&8?.^B$[/"M
M)42#9^(8F;WK%7;SNHF>W@MY.<897A'9U7-DM+GVZ)O5O=>]316HE44HSAJD
M*=4DU%0_'CO>$YP<9<D53[K$R0DS6TEY=)=CGC$QX-C3^]3(TZ<&PKGK3Z#!
M3?<&$20P02TJ$QR!KE9IQ7R+.HO/F\7'8O%1@V$(_Y\F^]$IU)XH95^8],85
M W.#\_5'.I2K.S+41(HD4[J6FA8L K@( )O+B+4U6)&)JET:1/:CE.$30 +&
M6(7JT&YJ#FYU6Y"$1/GSARK*HXQQY\#M?'RT4>:L=%;G=3-;R&@+VIS9;2[$
M"K\7V_7=;==W!S_4U1P.3H3F4W" 1=ESB.3(<2:CF@2?*B3Q/4ZJ%%^LFL29
M:YP_D!A+VF>EG/_93Q>K*QS3NXS\$R>7/%F(MS(_?FY[)-U USWI"T 0X$8B
M[ M)YQJA7@B\E;:9=_5:Y&G@V_7 =]L5(;$DQ->T0,?/J-O#BZ\,*;]\O"RR
M&]:JB6ZK-,I1LBT8"]EU8,[ND!B*0I7/=>+YCJ\^AG6 $HMX]F"&&&",2(G7
MB(J\]+IG BKN,18EINIW36Y5<AT(B7XP5"3X?8=N(!5]'3W#R+1*\%ZM#PZB
M^48@ --V"NO$T8:44<IY@A>U$C=#/G4SB'W$EAO=,4W,*V="^CK/J4= MA"*
MV+OFH6'YVM9MX0H_T/2!<8:XH9Q%,;B0GA4N#TI?3KI+#$+P=[5HT6CNXPTB
M%JX:EI=H^>:1MRNO3:]5C5_(FX@:WQU<3#0H/8-W&*YD+Z-GT  ZCS!]W]E\
M@>G.[^_Y11PY&P'6VM/$M+58?'OI(C*?IXA>5AI[AY#3=&I:X'U$\G64G=P3
MO'K_Q&0:,@,N5BMVTN;0UY<1GR2#SF3#*8P2"_5 .4^-JM%!'!_4(H1JC+B=
MU^(T(3_1];*M%+YKR]TUZ"Y$V0YR=X^+$K&[^>^\*EY+)2H6L$"/]Q3=1V Q
MHRHMR9J=FLS4SJ([S/,1&) -S0IR*ZR#QLJN@Q. QC"!L,6+YK2]I6 VLWM"
M0G(<<Z='8Y"O2,[PH5"5B@EQTF)6X\-G TO_EIGBFPTE6;DM)'4X;8@\3$.)
MHS;XR>\I#JEY#"/X#U31?8A2X+>C\B3*\V>V:;]&:24[R;6^-3S-E6!X2=$$
M[N8U7O$6#Y,SW=&*Q#WZNHSR4L].D2X.BO3<XCN294)XZZOZ[-;\/M/L@#&X
M8IPEJFMU9-7HB16=1&6_RJ9V(N"DW\=0O^5+M(W>QX;J1@V(\T?U!HNZYN*A
M#RY,6Q:]':#3R*K#FD7#F\SB^.Z./GR?8"+8DOVPSXWL5^*E&RRRLS2ZVV,X
MZ=\U>>I@'B^Q&-RY"M"\LHB<9G24$+Y+5SS6]SVF$2]SFK$?8^Z2+BYI2N)G
M\;]C&2.FTQB7K= #YSY5Z1%M$4*[&"V0P ;]5O\W=.:)\6916SO@E\<_1"3[
M2(OB(KN.P,._TR]CK .=WL>&_*P&Q)=W2PT;$\/7^CJG='X#9."%KHC$X^N*
M/,%;&2\Z&Z9WD!ZKT6ET#>T>;PJ00>7HDSH[N(E]?E9VEBO-8LUU/@C-DR/]
MM$D8R_$#SBI+CG3+*[/E5A]$:Y8KMY?HT%88Y#US&M062'']WAX9U$1P\,E!
M8P_\JBU1YOZB*HLRRJ"XO40Q2<<9JIZ#^7R)X %@$R&S@+VQ_^ZXCK5YQ21(
ME-G^-N@2M-UQV@MP).AREJ;*9/+LO*?K-<UX37%5N57YQ-15/S"U^QJE %L4
MEU^TU>:W\(,SEQ+=J0DQ_;+<95Y;8UI<I_B5(>.-S.Z:]UKP,V8_U0V@AE0-
M?;?:+:\PV.9&[V-'U3?\M,31P\;.[6+B.J?X-SCHD/X,3=;2*!@RI3.0T0/)
M2<5$/RO/2!%'Z=]PE#.S[I1M2<];R=A0@V<3V93.S0@!%PG "" C!AH!;._O
M*:-TI3K$\JNA3_%MN>WI<!P5I+C>,,Y.+K)?HYQ F-T50_&-1$?K?F[<64$-
MC"\]K8J/B:9VMU8#!Q @T^E9LD <'R00 A=U@Q*Z\BUYQBQ(I]+:KX0VB'R$
MXP8R."2B*!UG*','\[D6K@9@$"Z24X\JD\0O7XSQ@RT^\+;_O%(.2KF_&1+'
M@O#!X/[/9]^/\IR1CK]J0R+70$NML>%3N*)G6M=,PN&B#N!%G4 :KIG6*(7W
M.6B4;"%-P/.,F0FX*.'<>[]:X9@W/<<YM#^/[F0Q?T9S6#$&1V"%L0A'D)IN
M%EI?M0W;L$&*VX(+U.*%5%?NQ4)494ZIF:A%^_!GPV WO/$/+)X/?CKA24^(
MD-WP%.@\<DI,Z81GA[FV17$!O;]B:#V,DZ,']ML[?$H*'G,'0E'+@H3E3*<Q
M9$1=<*[9L\5G@1YK9):1P(97>N E$O)0EVGCS:&V*![H$C72P$ Z;NJERE?+
M J$5 6*81@5R O;=KZ:W)M#VHY_6F9_".ROJ99RQW^W?JY3&&GC2I7,ZK]-=
M VY\Z769'@[;NRM]G+)4BUPA3\@!WXQ\H)53SH>WIH4X@W-*YJ\9HXI'A0+/
M/6KJY&#D9&72SNA;E?!GN3DHDD.:]JH1":%\!W;2O.15+D>4B'R@<6CG_H3.
M*\P!Q"74'PT42"BE(%4G2R"+=;A:HMKHJ=:KWWJ$'.R"&[':!0-=F[4#1=QT
MB.;E1+ILPG\E<2*#XR:<1COS>3N+:GLV6'3(,#6I,HE"1^Y=YG@3D60X]U_U
M,VO1>KO3AXO3V\7#3H2>\=JFQ.;50!6;T7B+SY.PT6!DWA#]9N0ZO<)KT;B4
M_Q$,#5FTE>DT+ERG/> "N$Y1XSK-&W3J  )>T_X5&/1AXKB-MTK5D3I*?Z>F
MQ'M><NS]&N=W#(4/.7TL[T]$E?0>@T)AM(%9,3"K:TX4H%$#&PG@J(;NW<10
MH2_5)%K(&(2S*,9'O ZT4KC!X7 KD07;:<,$$6SA3X\7F+(6&Z$! !^I+,9+
M"$ /PTA?^V64\W)3@X??@0M:]\\3[F4PC;?K&  +=@?;(1@=HX*'$_1Z':7I
M<560#!=]KN&!4<8GYLYLGDY*#A,U0 ,=D/UDI(JT"5,9J"Z=?D,_DI+<\2)L
MU[@L4ZQ0&$CIVXEU@09A^"X+-(C,E*I ME8YY6+^B7W"JP!3=@&([Z.<W7H*
MQ=4Y+@NDQF@]58$TZ.I#&=_C-!V[Q?0-,E?%G<E\:6( &?BFTDM#JD88+W;7
M>;:B^9KSXT=V%)R7>#WT<#LT?()=UC>M-SNM QS]!N 1A^_WF469R%27<K[9
MZ*:GT8;*4#OL<^.C!44_ZW#0L^":F_U&$^K$\G#XG)$4YR?L-+RCN?STZ1UE
M?/SLS.;I_.$P40,TT '43T:J2)N0KK&!3"_Y0"ON,!_977M^HY!970/4E/J*
MIF5R&2J.NJK 5=.![[J,RMXP,Y7AQJJD?UI/.J6I!M%"1P)\(.TR0F*J2[>0
M^N9SM![.(!H;;D7W;*?UK($6"$"'S1T:I;!4'\G(YI>A&G<:N\[=DDPTJ8S_
MJ$A!X,?:!<!;4TI83'\"0Z93!^2\0\ 6[#*ONR?R9JHF7BR7RS)X'&K001U\
M%JB#$6KZ19Z,K]B1S!FP')U.<,^1I#1+:,:S66^C[/>+U0I#&TN&V\?SXXNK
M_CYW)M^:1IFJP' ><\J10"T6J$:#YSBC5QR3;Q4;VKF*0=7:"SJ)P&%*WP!*
M@T:(?.#$XC?;"7U5OQ&,%=3@&*!F3S$<&8E\ESLE:X[*H-J2C#(N9[HSF_OR
MI0Q<S1XA]8V,B%21,J$#F:]PC,D#L*YZY=&>;ZR%,'?F#A>_W$'"3O"RV:JF
M/)!V("Y0AL,\B:JQSF#8LI1R?@7G*/E'592\;](-/4H2;KM&Z65$DO/L)-J0
M,DIOHB=1 >6,$:&_99Q$Q"S/;BB,EK!P[N9ZBN&^5$9/Z!9G>$7*@K<' F26
MAST'T1)%[<),I#D860QNDQU<H>/Q%EL$Z/)N)0)AJ$_$J(01PQP="S(B$%YT
MW:'C2?#>C98%@SK>5L_)L?$]3BIH)+7KZ2K&$B'5/S1-GAT%X#R9ML8 .H:Q
MJ]T=SZM%>P[-8BZ9DQH;0LVI'-K6%"J'"14NML>ZLM4Y^+4U^[,72CA+M!<=
M.S;IU)5.LTY7599PT2/B'"H!CYD8J<.<-FBN*A UG-=HX+E<-LR"Q\C'4_F>
MORC<0[F4CA)?49A'<@QMW-+S+,%/_PO+XVLDX\R?Q7?G\_4>+J B#A8QN*$>
MPB74I,HD\L :5_B.0+4Q\5PJY8S^8<:,L3N=)[[8 N7/VH&X0D))JDH>59ZH
M5@P3V/;7/[Y[+4X(]IN_\THN-,KZ'<7R$;KGPN%,S@NH@[T/X!3]PPX03NIP
MRA[GS*!MM&%_Y;<3THD=Y0_?$,W#[O7\+I,RS(KO_)YR PQ!%8CF08'UOHS)
M_FRLL/R\@M6**LCSEY1D=(P.3C?Y([MMI )VCS4[,,)@J_=F<E_0B8%#S9[[
M-V&'B$<5*.+9(;^&$,%_<MUXL3IG2C:[(\RH'FRBI_:1J?M\<')?+H1A+(S\
MWY;79>+6[J  #KTM$DA@L4"\7TH8'[4:4U$SBGJ6JC2EC]#6^(SFI[2Z+5=5
M>A3S&M7C+CN]CTVE3 F(\XC$!@O@QJ1& T4U'F'84(_Z=!I)_;+E#7C7JOR9
M]W3]-4HK&0O*!QJRV^&$OA3Y(603Y3T)_RD>W@:PZ"Z,HI)'["[0VY\7/_SP
M<]-LF/WZ?U891N]>L[^PO4=1EAP..65,")<)].X-'_93$ $;X"VJ3G ?[CWU
M_NIZ'YD[_@+V6&^\@*+5^K7H=2VP0!<SZ'6MN074C*[AG_X><,:XAFB$F?5\
M8_&9KYT[Y.->BX2M)SV354U1\\I+\/AX=\@U(T]V$J(Y5=4W>012>OV\OJ5I
MCU;N_;N! MZ9Q[G/50!# IIW-=I/,SI*",_E3_.[**MO?R<T*VA*$I$5DR67
MPO-;WPS/2,;,<A*ED ?)J\ 4T#$HI<S &"UV[@J,:?E4R^@X+Z_:P1>JK'<P
MYD9J%V>X!+98HRW::(LW^BUTB)$S?J"^-MES<!U85>=%4>'DM,J9YA#5R(6=
MQ?]XL8&U%.^?<!Z3 B<2032?R#3X3AN@^Y!= 0@$1=P'J<  (M/Y+X4]7C]\
MX02M:(YP\Y6R:1Z 'KO&TXV^;[,%NFBH4&4)N^LV% IU+[' OM3>'H2I-WB1
M,:6TH2)3]6(U^+:@],W$^H*]<_NN*]B+Q)1Z@E-7->7^ CCP[(%(A JOR!/4
M45=8D^,J@L-LU%,]4(&*GIVV*BUYK';B\=N IQ^JD9-V(MX&+VJ?:<E.FAN%
M%#=7WM31%D&V.@-9J U ,GRQ.LEQ0J "-DE)^?PI>B+K:GU,\YP^LO/L)-JP
MOY3[P913IC"M%* !RI>,Z.!D(D%NUVP@7X 0G"<")=3@M$ U5JA%"ZFMVU6Y
M!!.^I#8(/XO;''^@L7"9&Y_'[EU.#F_>5[DYW6 4]FS\ J.Z$7ZYO2ZJ<QGE
MY?--'F5%%'/DCI^[?QE(!]&?P)"_U0&Y9NRFS!('&#*%Q(#V=#I!PS'H8"T;
M^4 +#.<GBG>/L4+6LAF@IH2%PM>R&?8<Z519F#"3$T]LD.H)U[(R"?/V,RJG
M]4\FN6?NQFD*K<=PAO,H/<J2HV1-,I[M4Y('/-Q?5.]C4QY6 N*<;046"W0G
M\$#_%JTW?T'1#BYAVW1J[@:=1N)9*&%A_5K0P0H3N;A S4H#6WS:LKHZ ^]'
M'5XG$%L@CLYBI[+,9?3,:YH?Y<Q&O<.BNG"T8K#0&<U7F)15CD-&]4]@5-5;
MX_P.HUZ,.EMT_+P=4N_@T6.4)_7=]P.DJ!;GF5CDAYP>=''S ,E43]C'R)=S
MU0'J1KIH#A0T4%8<[GR?WQU*"O6X>2]9DWE18K/27R]3=8776OZLJYX*?5UC
M"MT^]]M;@/H"U<@OD$ ?"@.*!2S09^'&WUIA09,K'<F8,\TWMV?JCQA.LT$7
MJ^IG%I^CN],[3ZN7O<0*),(Z9)5I/_+D*B>H[\0?D4OQ?!4]-BU:"Z91+E97
MN,#YPT#VC^J'QBE 8P"<OP-$CVC=0 Z4+*-,9&I.N?!*;^!A<VRX127GIV8(
MUV&B+5.X)\M1JHZHK]#/D1])= N($%P<90EWVMS3E%&V>/]'-134I?:9,5,-
M3^\O>&L8#[. +=MK*\%&U3.DN5F+TBTJ/+.GZ"#S[P@K+-&95"FR%S6E:R#C
MX P>-^YQ\H'21,\Z&/]RJGD@A^!:W!K(Z Y AS40%.C<9R&H$B\0W_V5YK^S
MBUI.H8& %M^-?SF5[^007/,=0 8'P$; #LMX"H3N8SQ5ZOF.<BK9?0PG[Z,\
M(]E=<13'U;KBP36G>$5B4DJCGE0_-(Z"&@/@/BI*8(!PC4*@@"AE0E-SZOGE
M.N@%H)XF/C+:D+\DL[IF*M[>84Y)UV/4I9HD\WUPLML^+LKA*"3)*.,#<6<V
MUQS3@&M"AP*=?OT4I(ID"5W<YV*#<UZ;N&Z;<W0+H4NQ['33G\!:V1\9(-=L
M=G(/KPG\G84V*-19IOS.V;F#_C*3.CJC>S)85$>-T)X/QD/M.L*I"E^8'I#R
MF7VY=090,/'H6%V1<49K27LKL80Y_!6XAQH0,-#M6=VF5/EDZGTY@'79PIZ5
MB:E$[+X[\\R,S?;$^ @G2./'?/[,*%#E.4-9PFS*WYD6KAJ;WWDEJM9@2 &#
MKJVP0%F+1IBB4LK$I\84]1PYUO;4:P7E1&"E5,]"]W/3:"]%,,YCV3M=%EM,
M%JC&97[=%14WI;?'H@ZE9Z$Z]12F&S7IF@'KJG+H 2+J@0L/=*2)+6MM,09V
M[%;=<^ +U((/&8<WQC3CZGV& G)B8EB<N+0J3F9@4LS0GMBG^3BW]1(R)--=
MD;O[\F+UI1!=/I1X3O*-%9;;F]LWQ^4 'O1UQ?ZA4F[-RYILJ&N.Q)*NE@P-
MT9UF!I(DXR2I( V24E6.)#T'WV=W),,8TN&.LN04/^"4;L!-(V]"J/B)KF0H
M3.V^/4$+GGN".PB8-RZTOJ;)G0S+>[S3S9 Q&[RAUOT,\1X1DBW& 1H<JC(;
M-:'V1-FYH305<#Y%\3T#FS\/M.X<&VPB+]))G1>7%X Y@[2@)S3WM+<.JWT^
M=R6C["QZW> 9HNGG*"M1/;IZ#O#%[!3#$ENQ3NHI3J5MI70_-PWX503C+?!7
M$1^C &!G:S4/!.:6Z::&'2;D5Y?1Z%2*^I5#\3:'E?Q4@V,-):QW3E_BU O<
M1'8LK<+@ME-#GI5K:IA/J!;99G0J?<D24O FC#AY_P1QK4=K^)?)$34VEXOS
M2@9S%H>7##GK)YD%*DPI;P^X_8*:X+'Y'6FCC*EZOJG1V7<@[@KG.4[.LYBN
M\4WT5 ?O'>,,KZ2QWXI?&0?F#LZN+YP/.+^ENL=(@P6[^  :J(R>S!YJK"_'
M3->,H!$H]%B-CZ@A-;T;CJ1DXOX V.WVR^YVTZX1/H)"8G_#47[&/I";EU-G
M-#="32%[DL^;>W9>\&ILAN:IO_49F^*F*(:R<2<S*W6P0S.RESLW7,#UA@&>
MZLXYF,>Q7Z>%YUH,WKY^^V9^QN @Y0T<'1)RSOG@NL)0P27!.71(+.(HA358
M.< &9_9RD/5BX.E @\UQ?Y196J&/(ZT7U1=PM VSL?$1I[!S\SWJSAAK6#CI
MNM-X..@ G(=S[NWLS[D=NAL><X?$G#&[RN]DIM/X8%</MQ/&KN_FSZZ2.\4T
M8LZ3757\")/F<LRX7N_6JDZ#P#P\>CFV0-PY7S'XK>B16KE4[,WEY1I1P_1V
M<7C[VOW%P7A-/JX*-7(OX'*PSX[&UX'>_9B]4 ]XO";.YD^PS;Q?IJ(]X@0+
MO"IOP@WHO13QECD%K>S*Q.#<$YKQ=/V_DO+^I"I*NL9Y:SFT-3(J?$/9R((D
MW,*@V16.,>!]QFC3?'90D<[5_"8AP#;Q<)^T+] I4%)AB*B-NRBAO,8) 6.B
MN,%*.YHX+$G, I!%A 0DX9 :05Z?YC8E=X(X$'\,+417..=%*1'-$535([&@
M9(TP[_#[>$_B^SWB[M 4W4<%NL5X2_, 8<Q.)(@ZYX&YFQX#'LAIDWDS/,R\
MD:9VQXA3,NRB?)D=@-T+L3ID+EH;6S)[V;850A,D>L9SX,RX!S?LHKS)]LL(
ME+$7(S,'/Z!67(34 V@XBX_0&/<>LG%WWPQ>8"0NKDFD#%-DB:X&I.RL@NYC
M/;*F58C))HB)Q9ILH.*SH)/ =LG115M\15&#8H$$RJB+,ZJ1GEOE)ZM<T%,=
MRO[63G1%'5<%R9A".*'K6Y)QH#N7SIOZ7I_C!&KG=PJU)O]@=]!U3UD<R].:
M.)XL@/?130$2MF,!&$4M9&V?4I#5&B0%-GBB#J(+M(,JZN"Z0 V-:G31T0NC
MD9F[[>8>HZAUN6WY EQICWM<0S(4H=N&KO%V<0%\9C9EGKK:-OOJ\@K']"XC
M_V3Z/&'@R(I$VPM _$=%&&Y'6=)MN%04C"V2NO14]P]QG%>X.U11MWK!P9(B
M=HJK\YMNB$794'9SH?J4)-4:<-."X:NBBZ4'FJ@F4;=7';QG/9+R'MYL,HR>
MV;4.'FCJ7T'!I0R*RJ2=C@/Q<YSB!2(KE-+L#N<+*+T&JT91R;^(@#0%X4=V
MPG9R'L>-'S4X<#9YY*89N8P^1>S>POZK=-^>,),+UU$_1-?'B$ )VJO+:[@V
MF,WEBCQEXU2]3RJ[,;4P6AXE&/K@,CD\9M9C,E 6;7BH45&T_BF=A]P"6-']
M%PJ$<<@3*J+96H1A/30H.5F((PAJ Y3W.:WN[E&.[PBTP>"'$IR%VXM1!BMG
MUZ>[" [!'%H8ECB&9DYQRL8\8%Y>M(3 9/@P2_@A=\O)Q'[!_U'/%:*FV@@?
M4IU]\5S;%F@JSK_Q!@U#8TUKV?;-Z;R&+0!5*E;KJJ;K("6I%GD\._SOHQP?
MLR,A85856/D[JF'?7SXXV-0)WSNIIV=A#GQY"]#!F=."-WDJMK40LZ?@?NAA
M?/O#;$+U2#8CN[MYJ]-)!I\^H<L'W"")T>,YWR'?<I43F6T1>"YQ1E\*O*K2
MCV2E'U5T^*GU&*(M".>%OXN2K,%9!C8J@XE2!A2]@HW[=F:A,SUT5PJ4D1$S
M5$>G@3=:S>9.VC--[O.D#'$^$0)S\7!,V;;>3E"&>S'1P]%49[O"#SBKL-R_
M,3C0Q+O1.Z%K/FMK!-90S?T:EM"?ZL-/]HH><B=$?[+%)J=)%9=\B$["Q4&*
M!3A%2%'_$U@S@)MCF!VI^B:%-]%O<+Z^6#5Y'AJF>/^'%DWN70 A:^SN8F*K
MH.[4]1F$M4B=^8 +"+3:&CU>,B1<-G*9&"*M[X*Y&Z:I"-=E[.<4PP]'6=(-
MG9,(G<ZGQJ5SQT&X/Q2W./#3(>H #U1F5H/P= HU W@LB\N()&<TOXF>(*GO
MGJ8)DQKV"WU_IN%44[R=FB!=\^YG7*("(#.3IBQ3WI@=U"A4)L])##=A9M[$
MOZ.*6=>%L'WXO^E&&$C1$P]NJ->!7I%,S%>,W)=#DLC@W.DZBVO_#CK*F6EX
MQTFV0 )SQ!'&:<*M0;8 U%D!NF@-RW"^65.6W_?<3MHDOUIC_SHXT)-]CQTU
MOC34"0H0W"?C[[L(MDB@WT+["72V@$Z@JU^6K',0(I+_"CV2M]@=W19#UQCE
M[PS9<71^U\SXJA.#]6W-C[\$83QU4E-C^H5@NN'^RKUC)C&3I^[)O4!-3)")
M6!LW.JL# D*&,O1O_@%[3VKCK%&EAT-K2W1@\5]F87S)F(9(6Z_4-@ZTS^]J
M=6);=7FT$?!>D">O_;MYBP):HHR6B&0/E,00"48M5^;Q0!1K)7E>)35^WT)6
MD.B;?5#&B/T%/\7W<$?@UX&#:CW;?)H=1_+C/6[F))!GE"4\]AL<Q^QRQ89
M+/D=HCSRJ63SHPU3&M$=?_TIR1HO1)&?JB9<SV;.I,J/N2 .E?>9R$B^+R=U
M6Q]<7+4/ M+KR,!8XPM(SYRNU<T57E59PM\AU9M-.;M@#!&5:E'*+^O< &-7
M^?,U.&3$I5S". ,C#=FF9T;W<=4"I'! +6HWD[K'R1'_#-&6:A#,+^^<T/6:
M9AP9?E.1,(YLF"'7[$_GFF4$O(9A_O6[UV_849FC!X"]0&]?+UZ_YO_?\%)4
ME?<TAR/A+^C/BS_]\.?%GW_ZB3L]V;_>_K1X^_;G9B@I"LC]XN_%55F4[ =V
M*"_ <;K!<4D></H,"5S_L\HP>O<:H+WYF<_ZY@<&\FT]Z[N??EC\Z4_O=&=E
MIQI_BT7OWO"9?PK"^E+NH*I;[CG^K;F7'S]_XM+(?;=G.?ZCPEG\?/1$9 I4
MXTO3Z+=Q"*ZEI0,7M8#1;P ZC.]/A^IT BD]NV':;/GBAH(1FL4DQ9^YR<H,
MC(^T8+\_B8K[RYP^L-M$<OS\I8"@IO:%^ @T@4A<''$7.@1EZA1R@))KP>C@
M+.[&-=8HPV5KP%+^KYAA#I%"''5T^]S)\XU:O ,Y-%TR _6YPX%.C3YE<DHA
MQGOLU!C_<NJI(8<0Z-00P .?&PIT[SLW5(D9G@_A)EKE.9.9_LA3@T\M<N(^
M"->L"#B@7X5QWX)6#%'UR(I2RH_PXC Y@]T?Q67VJ+TZC5\E95],OU7NS^SW
M@GEPBPSNG% A>O]E;9B2@9GMG%^351EM=[0M)A.S!F&PVDLP.^;:(_008_51
M+QA374;Y17Y=0MX7U[F76$0QC3/8V)?3F4T&P2_CM5XSSG0)3=,H+Q"SUP4#
M!N>_T7WHYT4UXD[BRR(O.SS)_K7/C^Q7?[_"!2 !AWR/$VI@A"9_]<SD_JFG
M!1?"E31$.ZI $*][WWN9'!PS;?_]7!!W."#$M7"8@H=<8/VJIZT#6@]*[ZU.
M<?1$W; WJT\NV<(.<WE3)7"/ AFDF@<F@F 3.=,<_M6$2;:S.$]KADB=HB1Q
ME**NGRF<&NFA(!TAB^<B4#MI9$TI"HDE.SS8M Q4[Z3.ZT U4!>U#SXB(@E#
M5'<NP$^?5@G/]$7K#B_1%4IY3%>J6@3652&IX<V@>A1VKVL^14]D7:VEVJ;W
M[P;Z9F<>Y]YL 2S<N=-/-3I*"@_[3;+A_>[[N\E^=^=QOM\"6,#][J4:'27%
MC&JKBR'G7+\RI?2!TN21I.G^F>,9;.@*ZA+TG$?)\60"TL%5*:/@I1!C<LUN
MD>'6U#-=U&8!O!/=U4A]I66WQ\3%1:5MI6V?J,D^5Z <+U;;L@D\,[FWF\/8
M6!.=(9O32W<$&7!M8;>W"H/D:@$<Q).#%[4\PJ_$L&(RU% H1*P0E/MOUR9N
M&26O4R)0"J!11B6 :I'1O=5Y*:HN7>37(FM&XA\?&F9@@_9-YUJ@+SOUI6JP
MH3SF@]2DJB3RQAP%.WQJ+ JI#WUTK#F;',X9A%=".<7&*4NUR#71(*C3NWCG
M]I[LL-8: >.$_5]R$SU=8D9FINCO#IY\K4UH8EI, NR<!5M(<+AQ%LF:A@ Y
M*7[7/K@]K]:\7]QF9^5U<F7W)@%%<6*:IIC7S^&YF$UR9YV:"451BA5$!(OV
M"6S*%?0%8D3LEA^\?=XFB<+$&_8M@1(T!ZFDV_31 $:%'0&A]OG TX.+[,U^
M_V^FCRT^K _I4TN@-_L#VM%!@H2J7@QQ[&<I?;RN-AM1/2M*MU4_="L8&\TV
MN8JQ%E2?E8P!,028+5 7MTY]HAF6,S;;P]Z2QA,VQJ\\7.9UH=C1A-*!D89\
MW#.C>^N[J1HLR2Q],Y18FM'=.,X@_#JT#U2#N"'Y3"$6>/P#*USG,R+X@/GF
M%12L0'$I?\TE-/@\*S$4P(02AY^Q++E2,LJ\$&!W-@]%_SBX4#7]>BE'%<GA
M.5!\Y!0>L>YT/S<-&5<$XSQN7,EF"VRM:>\)G4IH[^<DQ#^]%[V;ARO^#8XU
M/QT/Y_1P,/*@+[6.U>Z.OP%J4BT2A;K3U@Z8X^=/T3]HWOA=BN/G*[R!.N#9
MW36^$_G=>M?;J1-/ONF:(N#STMMT5KE]1AQ+U*()OVH110VF\[L!3][FWLNP
MG;T+?U\93915^\CBO<5?NJSL[C*CC%E%ZH_<8>:1-WN>,9%A[/$\=(DY'&)\
M@]E.Y?[Z(F"-QFJ[0-6XQ"]IP :Z=?5L-54A2DBEJ9F;J_>Q%24:*D/W0)G.
M,DE7<T.D>M5#JJXVIQJ\5$K8=L),ACQL -%++YHH#71SF[(%U")=9U!4J/WE
M_TMPSC"YUR]S-3J'S3)#,EC^Z@VA%C(/R?I\].O\*F"-;\E8_2$U.OO(/.O>
M "71%_)!1CEH^Y,Y]Z,VU> #!6 ,D(^JT<0]'WR.UOABM8.'-/QS=*P!5TCG
M],<<H6(^Q\E)M6@4Z-0[SS9567QD9W;Z5JV"GOR+J2?:X<P^Z^4)Z O$X:.W
M,ZF:-T#MOL-JC(3!RDT?GIP<2;6*TPH?3R\Z/0 DK!DUB_+3*EO07X%:F:Z^
MKZY-!XN"7;N&7P@'QQI?/WOF=%]CI@6Z0.Q_"A2E*7WD4==0*B*AU6VYJE(4
MQ;$H&D%7Z%]_>/WFH) _9\]__>''/\VG&/_P+E$MTOOE1<#"2KES\XD,N5@?
MH)?PBQ5CZD(D&LRG_/B$S:'V*.[Y3;VI"_619/B<_2@[[>4#3=^\#R;TD4!0
MIPP 3,2!!GJ*EE.3JI/(LQ*L\VU;3FY>LV6Z;FR\J4J3S>L\GWT, 9.'/HNK
MF937WL)':JMQI8-'F89JTRZ,F(B@#S!B%.5$_L%$03F<V+>D'&(P151LK&>2
MK&P1F(>P#'!.C[2,D<]WKR'1.S1*(9#Z/#N)-J2,#DHSJ8TV[OC3.ZO[ICT-
M6%X+<$DR% O(@;KO#-.6:A+,+Q^=UD_Q)W0-\:H\._F2D5L4^)&PD]I'AEPU
M/+DO%3R,A8D:MKTN$U5,L^4?5922%<$)2IHHD[B#$=JP+X+(D2)343.*^KX>
MTOCW>YHF;(_>_U&1\GG$P3'^@?%U43:Q^VOC%O*__<M/;]_\^2\(<PS"N"D4
M2$SUZ>:Y!C!T!F=2W#I_1.>U.M= PEMJ'YG6!!Z<W)>V'L;"1%M;6]?/8ET9
MOH,(-SU]S9%HTEX@]@]0"!/MI\A$U(R"GK6SL-_;]()MDM=HQHOZEZ;Z>AR"
M<\4M4.ADI&R1")_AI[,%= )=/5_GN,E2/]F,]7X=&FMZE>N;TWVP"P=7EVX-
MU#MUD)A4BT*!@A T4I:5OID:<A B.;D3:3"K?&0U@O<%&,PM\[@OYIG+Q!6.
M4R;!_$[)VP+7;] 2%C2>QS1]7A>>+YM5&S$3,];EZJ=8MJ<XSJ'^;(&2:J?(
M':1241*S$SI0YSE3[J36B.X_E5 T-A+V>5.?0R*^8\,GI!CV3>M+&&7P37,0
M)ZYEBF@UX.K^]<$R$@>YA.J2RZ]0= K>2^2@9X0AZW=F\L7M'U4;(CG V#C'
M-G07I[X=IPI$F47(W1G)HBS>":.2/:MK3V WQ*X'D+=G=V6,C)[A':[70*@@
M)Y/W4WM5%;QWVK=0A)BC!N5(5@U:G?#".447#O'C>%3A*-%]WZW6:\*/0*B@
M#N8C0PTS!*52JO"%\7U).K-S?] 6- _#CKO @S6B'B,S-:"=^PRZ4Y+CF&V\
MM*E;_P"#7+G=B5SS2 ,M7%\W">'H.#4\OQ7NOKM\I,5HL]##D::O@H<S>GL*
M/ 1M]/YG8P4&Q_(VGC3@]6V((?JZE<IH%-Y#V5CESW7UAFW#,PWWY/@D%GV3
M<F A'9-RK&QY)6VNVR TJD$)/3*<VLI\"]2BM6CK]\UT[5-\1LW2<L6E>?2^
M*@C?B.M5E;HFVJK \7=W].%[PIU8H*O>U3^#EGK7T5+BMW\_Q3EY8$KS 7^F
M(A14M+#<4T>*HS7USLBLKA7,"'@=:;*^$@.5L06^0 UXI+(4R]*CRBM4DVRS
M<%SUY/_I.:X&)G">&QK8<=6#D47'E97U3G%<==U5?=FP<W)7#7&A41+L#$55
M/.1,$-6!">R*:@^@P*+:@Y%%4;6RWBFB6KN8$6D0F:F8#G'@N)B.DGE&]V%V
M9><!&$T@QAG-F_%-X^_S[/BP8[C)M7DJ+!>W:U.<G">WU<!!6DX)ADZ3.8D+
M=%NC LDZ#2[SNZ--WFG5JYR=[?/?;@:>!=A_(*/D(4KAH>"2V>(TV5^/3,P,
MIIC0=D85E#?/E 9.1KX9IVLV/$!)#1B]2FK0WR*>\LK.5?Y*!C_@+;K!^NYH
M,R:U07F_,OPAIT7!SOT5D07(]8PPE,#.3+X$K /21'XF86P@'AP>W -'\77$
M]GV;317HX=L0+,J+U0=*DVZ#]FN:RA]!QCXP-LED$[N/+2A*J$$1K@RY E&I
M/J5F=*4PN1JX-/%G\5YF_8E(?U4;?HI>EU%>ZCJXZP(!N7@XF<U:WF?:Z08Z
M*PEQ<]*^ 07-5A15-*%R5,E,T"A/BB^;)"HQ&__CZ^%ZRUK?FF8SJL!P?Y-O
MD$ M%DB@ ;5$?UR^#ER+66\GZ"3R^N7/&P;M8G64T W<^0?9<6BH(??U3>F:
MV0 FF#<-U+!-*@:)2G4HY9=O+J-G'KQYA5.(H;BA-]$3*%^H \*X_8R*SD3'
M[!*Z4W1&PEM3IS/D/U.PONPE4_Q,S \/M)@2=U.CQR\F9516T*2-1R#5^!6\
M>C7O H:$D!0(/^$\)O"@ MX?R)3*25PVS<)0E9&R0/ 0$2B(9S+74]O;YSEW
M#)<03'*Q.F$&)RDOJK* 4Q*>A?HB?70_,\TR&YG>6^K9"!Y&^6C6UV80#50C
M :(LT$ =/!8AXH*T.8N:DM1WZ<M_5")AM& *X#-^W-JCESG-V(^QZ&HUT(3#
M: [C,ID:L-P7SVR1X6<+0P=U;BJ["(7LT6&V0]0*V=VGYUS'.(MR0K]DQ0;'
MO"" M,'5Z%B#I!WIG,Z+2]6 PS6X&B<GU:*1/V9A;(SCJ"BE.5W# R>PR>Z$
MSHOYU-#"Y7B-$)*J4\?OT7B%2\:?.'D?Y1E<'P9='\.##0^[_DE=<TP#%35@
MPWK61BA+]<CEV0>2TQCCI( ^M[P(ZH6X=[YOKITR9X?J=Z9>C;'YO;DOQA Q
M\E/87YW!':;!0G08XGB@&A&DN#Q73@5E[J+&1'5_D-^0,L47JW-VD7H@216E
MX,O@O@U ZYYL;NA[9J"6_5V9)\Q@</1K0G+NX 9TX'*]12B<"6FZ"]0":0-P
MJ:0/\^ X&QSGXS[<RU=A&C,/TU/&.Z'[3=[DO(_X,U>PPT]M\I&F+VV',SKG
MEQID?3H&-3.'"$HUJ.3A!MMT9&NN3!*5,CC.Y/[:-Y\_%T<8/3),1*I,&=]>
MW=[>.,.Q)"K?&'MM!^9V[Z5M6QQ=UBV.:OB!0T:4"#[>\2C\-1=*-=%L_-"2
MCIM07FMG/A]%M6@VA^-*3DJJ3!_/C2(:)2DZP, +,\U&7I:4OC%M#C$TMVM&
M$C#1%FC(UR$U*O?UA!TGG5\>V\.G]^:O--:0IWKG],U+8</5ALE*M6CE.=:$
M9G<W.%^?XEMI7$G/$-,8DLY4KCD$8"U+!@PE#%J8N(D^RE$5<G@N] >-ENK&
M))TJQ(-FC=(WIL7_AN9VS3>B95;36:8#/JSMHT;O_>Y9:D3TW2^@J?4';G51
MX[0BV5U=HX1FQ3%>T1R+<3?1$R[>/Y5Y1/.$L(OF,^_'_IE1#)(;:)KR\H$C
M+0><0S3N6N ,,W^-#YPMP:QWPHPH:I"1*O!"MQS)NH0G*J.GIHE?H&X,[@6(
M!MA#OXKOE!31W5T.8=YL#= /G*>2W4 #E[&^6UK?&BHC)1CNRS-WD1!-WT5I
MR=\X(BAT0RZ]G:"3R.L[]F=31\M?K!3N!6/#C>-_^J?U=9[)X)L<1A;6,BDY
M)&?G!]E$*<I;1$"BTO!7HU'FH;I4]"TK7'B;\VD_R79,G>M^;BQ+:F#<1]<)
M%<ZC@OH+)8?OM*B])W0JH?VR[''$]B3&U_<8EQ^!D]@I-."&'AMNR)*R:5VS
M8 T7<<"H@1S2 SU*8*I+M?#\-.A\'O_ (D_Y<4/+N"JD,UJ!S".<%=XMW<FT
MH2F!]C=C+:U'/YA<"6)_8H_E'QK03%W5P$,7?)!2N;?*PS#IPM]R/D*5QR95
M4>.ZT_N=Q7O/SOPA+T [B-BZ"9FNSD*^/+L&95#*AZ8/(%_L6Q["&2NLS^.%
MJ)^]1FY& U3U'/N N>?M \YP'J5'67*4K$E&0 - XX#WPI\Y_,ID-(=I;(0.
M+.<A@ *9!:K1X:4:=A%"#49A'Z;,MHA:H7N 9]+/-*.[7:MJ!,=?2Q4_G?)H
M.@+"S]MI%PE4OV>\JO'X=@:OJ*K[L/^8JD5<'=8L]IL!)9@(MF0_[',C^Q43
MF;C*2?G\YNTM#^??X[JA(9K<U3>5MXR*-V]?W7Z+&O!>&6:0A%2%+N&2+L^+
MHH([G9(77_U#"VF7_0!<\]-N4B*39$1J/&;B#-?8 TERH@IAPS&DSC5+^3L+
M[!CDFK7+C5'R /LVO_N(^CY(6')V]Q%Q9+=AO HN<(4O)L7]],[LFO]J@ZR%
M/0M?N JE#P)$%,@W"PX;=(HK?6.7R_RXQ@?X+*1W7(W>X[P6WD?."Q=>YB26
M]7HY'&#J&6DG\N6#W$(T<39.P=>@Z 4'AQ2P=>6!.=QG.DX,SP\Z64D2DE;@
MT:GO302B]N*T2G BWLW7FZJL8Z.::C:76-3G'"Q\:75NTV<B&SCXDBXKR)H(
M9B J&<AT%U.T114UN#:A+"VV8*ZWM:,8PHAC'+1LIUVYH$ZWT:\V^BLF=_<E
M3HX><![=X<\5^.\N5J>P)IQP)(M.Q5*)WC&<Q5##:$)S'Z?+X:)7)$,%!_ZM
MB49POBJ#$/QF:8\U;B@2R$'G1,B$%LM%=(N6.A4<B;HI*U)+.Z$JOM5J(\I[
MO/[QW6LADNPW?S^IUE4J7GM6*QS#<^9>N54>R)KB\TQT=-O6_-^734O3Z0KI
M1+#NRT'471V@P\/U"?KQ]8]:TNI]>0F-*[AN];0S&(PSW;"_\O=]<//&+<8(
M"Y1A_1E^1-$VMF;3H T]$45W(!@5U:A_YU>>;;$OM;UI$R7\/&,V0I1>X9C>
M9438!1^A%^-14>#R*$ND3<#,OC:17W4H[N.E6Q3X$P7OWAD!%CP.(&WP0*]
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
MK$::%V"#C$N9(]M#<5/W=6>7X!_93^R7S:_8_]Q&!6:_^3]02P,$%     @
M"4H)3\E9<LU_1P  "EX& !4   !U9G!T+3(P,3DP-C,P7W!R92YX;6SM?5MS
MX[:VYOM4S7_HR7GF[ELZ2>\Z.:?D6\8U[K;+=B=G/^VB24A&FB(4@/0EOWX
M4K)DF0 6> %(&%6IM"4!X%H?<5EW_.=_/RRS-W>(,DSR7W]X_X]W/[Q!>4)2
MG"]^_>';532[.CP]_>$-*^(\C3.2HU]_R,D/__U?__M__>?_B:+?4(YH7*#T
MS<WCF^O;,D\1/2)+].9_#B[/WD1OWKW_Y[L/%U_>?+L^?//AW?O/T;M?Q'_1
M?_UGAO/O_Q3_NXD9>L.)R%GU\=<?;HMB]<^W;^_O[__Q<$.S?Q"Z>/OAW;N/
M;S>M?U@W%[^FQ5.'W<:?WM8_/C5],?3]QZKM^\^?/[^M?GUJRG!30S[H^[?_
M\^7L*KE%RSC"N4 D$;0P_$]6?7E&DKBH8-2R\$;:0GR*-LTB\57T_D/T\?T_
M'ECZ T?]S9L:.DHR=(GF;\2_WRY/GSVSG*^*?R1D^59 _NZGC^_>BE9O.<4%
M6J*\B')2H.@GSL0=_T0H1BSBC%3CWE(T__4',4*TZ2T>_1^@SL7CBL\/AI>K
M#/WP=H?:%46,MZ[@.>-?K-L+LGJCO'XX>B@0GX5KK#;/STCRC#_Q2+:9,PPE
M_UB0N[<IPM5SQ1]1/5O?KY'_#_[5OX_S A>/?'K'.-\\-(MO4/;K#[*?:YHR
M,3$(72/2*TUG:!%G]9-G#Y@UD"5I84+9R]D@OOGW5_XNV#4YP3E?"3C.KC9O
MB<UN6$'CI-@CQ["7*7@;[.8QNZD65,FB11RO:@!15K#--_M(KK_^]Q%F2498
M2=$UGT<'_"'?9:S >TR<C>B#.T9.U\O\L8$^"2>0+O89>9KD?/-#I_S/_96J
M;^B0Z.OX)D,Z@I\U4A&[>Q;,:/*&4"XT_/H#%SSX+W-$*4K/ZF=(#\GJ4*@(
MX0^L#OI_BG>-TE]_*&CY1$5,DQ<GS/.!UBW>KF(J3I?D%F?IIO><DJ7YGD5@
MT/ '#P1+P64Y=&8'&_VD):WVF.'0L3-I5.<NT4D+4V=>,_T)0"P!0_!^JA!
M]WM?)@-$3B)M3O$M0/_YME'5Z%5G^C&:QYA&=W%6HHC,H_GF1*@40EI69X*I
M+F4VJ"4=JPU10?<*NM<XE!9/V'"I>YWPY?^[6/U;^IA.^0+U"=I7T+Z"]A6T
MKZ!]!>TK:%]CU+X,CG&[ZM?'B)4KKO>(;[@FDL3L-IIGY)[K)'-"E]5#3;4O
MHS$M*5\M: JZ5]"]6LN:AWR"G?#Y=;4SZPS$?M/N$]?*/&'#I7(9-++)BA1!
M(PL:6=#(@D86-#*+&ED["<N:<I:2I'((17&>1JB:Q+NJ"EPC PXTO!IF1,B
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
MB:EAUA=,%.8$(FOE,QY249K 95=?L- :G$A;FXXO".E# V%&.U]")4$SQB3
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
M71Q(5<$Y\WJ<,X;R$.EEP_<0/*W(I4%.*0OX@I?>#68LQ/KBN.EQ*JEE$E\
M,YI+8%7/%W1ZV-9U>I=W7KV0AAG"$V">'4-KGB_@P-ENK-_99#>TZZ9Z_RXB
MX@8'KCH5<;[ ?+)O]*44<14*%RCCA*:-O[=Q/_7W0%NU/WLF.+B+K+F+KFF<
M(G%/^BQ/#VB<I_+RF9JF0_JN^IM@()]4W_/9IG'LL&0%62)ZAEDAJ86J;^G
MPEJA>B90/7T"M=K[OS$T+[,S/)=9^DRZCHDQ-DN2<EE6R;FS):$%_KO:CXW9
ME T4Y;^,DF^NK,9_$GJ8\36C<DV9CS J-E5U"Z'=1L70%G-Q"JC].NU&L<_N
M/G5?47'\D&2EN/;D-T+2>YR]J-K<HJM]QKZ2O,JV*-#3S>OJXT#?(;BG@GNJ
M'_=4CP)6<#N](K=3"XF ]'0H^8(AP +>5N[RQ@S><IJ!E61?C. =UR-4XO#%
M8-X1+JV^[LOZL^%;&?G*"KX5,]^*N0W(N\72$I\F>\, J^ASC4W.%V^Q;CL=
MB*#V-5\.*AA@YO8/NWZ[3Q%[2C]\7GF"E<ME3!]%8&15G&)3?2(6-[B*>Y-;
M%QOLZ8'V:@WV2G#PV^V1-9S?[IA/#?*(A)K!Q6BT_G0EWE6=""KWXQEV';@N
M8D\3$%H6L=?Y;C6'3.3X:J[<:FPSO?)CZPQ[(?G617]E-M2^G^/TMJC^F-E+
M^AZT!*;9TZ<,\//$>I5S;X G31FX\[+@^W">UO<+4)PSG Q9-U#[O$E#..B.
M^.(YT8\!-'/0/GD!FH-C!/AT3V;EB &>\ S^'3'!59X^E10BXBNW\E$WHJ9\
M^DLXWYF(L\6"5F9!*])!9WI\? 6#GH_0QX]ZEC,9DUN=.T\OLCC7AL8-^:@I
M ?=<<T2RDF6][,Z]$C'->0HI#V<%:S@%SH%N4]SPI4'D^3'2>TUW\ ,G#>+>
M/+E$8ML3=\FM;T<KXVR0BOG=*9D>['(E0<;LAX%@[T#)]&#7RTF.%T'_!(:(
M<I<1Y4,12Y+OIXR5*#TJ13V)^J"O9A;;\3(^"5VIE"'3@:+\\VN+I._1I1DB
MZ5]/)'VSI]BD#'5G+=47*/6AF@JWO"]1B/+YU#KBQ!=H0C3SJ*.95[504<2T
M&&-4ZN >W>&6V>M!UL17.=R:'NWUY!;B88:+O)XNJL,98L%HP^^Y>9X?<#U:
MT+OKI&#PC*^S\7>J=O+/@ '_J=T)=YR/,I]E\+ F,*X_!UR[A^" T?YE(KJ
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
MTTYB#C?UV1 @0K)G2/8,R9ZC2/9T$)H,\T%TDV:'FSI3!TPN)0QGHO< ,ZE
M.9SU?OJH2=6/X0+N/ !-IJIZ9N'O$31G-FS)C31/#5A$YE$2L]MHGI%[UN/E
M//!'.+N7QY3$8):V9I:^H"1!*&4G?$U6+J'UI5C'#X@FF+_)AF)VIOU<W,KR
M9\GJ:)YK<HGX9$QPACA)=4K[&6'\>U$N@[-QA_E,.WC\QL0->$_;S*R^7E[X
MRC0W>0SX* \O MF_&=8OYCZ-C;GZ1D<^%478 #I"];]&/#8/X=)'L@D>?JI/
ML:[:<8!R-)?6>]3TBMZ[9$A?$D#*%;RK@XLI^#$J=L#S_ BSU;KBV_E<>6^(
MLH_3N[[VU\!IOI>Y)^%(V\_EW&LD;B_ISH2OO:[C8DV9,@?F4CG*N!@VO'@%
MTGMD2W!3P\IDFN[T&1DW3T+A.CY4(WR:#S *)D6&QE;\51T&L,YC>XG/2&RS
MCVI'& .;STNF@7E[WFUDKVZG2B"8H9T^3KD190T;],QUQ=U=/5/"&GP E](_
MG$K-YME^H-$P?5K=7-[AW38,,,)WVT!ENW<+&&@T3#?8A\R8;1A@A._6W.+6
M?B G3&_M@')^7K9Q<)W)VHMRB:K4FVO"Y7ZAX8@< 8[J":%7MS%%!_S,>Y:V
M+>&J[7!.C] -T==DEOQ58DY>R7".N) I"L>=SRL+6?U+JN$;,L2X>#6]OQT^
M@%L^=SP5IXR5_'!'Y_/=\A4R_L =W3*UH>A,3#,^P?C$DAI!P?W<LG059QQJ
MXPEI/H*+^XHV$9*@22AK[G1)-1$%F7W:?DZY,CK>)(>70^/?M,.MZX/Q1$0%
MP.^*DG8)<>/C"'-5O:(0^AU"OT/H]RA"O\=8>::KEN\+6AUP(" ;@W<+3#FM
MA@_7\F7B#8K4LU* IA$L \Q8IY>(6 +:++!FN!R0.T1OB/5;$"R!#-,+ATL5
M\1I<PQ ^?RJ-04ZVMK$@ YQ7+G?3%C H051Y]ST[B/J&3A5F-<#:] DZ39#,
M .>'3^C!XA8]JR/8-XB@0+OA,A&="#)]8ZB)\QZN&*$OZ&FBR<$ &E\PX 6
M1H'J8"Q'?A'!L/N@-!87#)_QE00.<K*[8=@^'FTXO7B,&EO7($7/-+<.<.S6
M9&\?E>29.C<0GB;Q;+Y88'J"LFU\TH"59>R?+?U@V3Z>?;B*,Q,Z8\!)#KYX
MLSK@(%G!@/#)UW&@&&)H'@3H^2G280Y"PI(]LQ4.-PD;PVI].2TZPM:NY,\
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
M;]_L>5&J   P5 H $0              @ $     =69P="TR,#$Y,#8S,"YX
M;6Q02P$"% ,4    "  )2@E/(!^T(RT1  #NTP  $0              @ &
MJ@  =69P="TR,#$Y,#8S,"YX<V102P$"% ,4    "  )2@E/#,BE+7D-  #=
MQ@  %0              @ '<NP  =69P="TR,#$Y,#8S,%]C86PN>&UL4$L!
M A0#%     @ "4H)3S'?YLEK0P  Y.<% !4              ( !B,D  '5F
M<'0M,C Q.3 V,S!?9&5F+GAM;%!+ 0(4 Q0    (  E*"4],142#!5P  $ Q
M!0 5              "  28- 0!U9G!T+3(P,3DP-C,P7VQA8BYX;6Q02P$"
M% ,4    "  )2@E/R5ERS7]'   *7@8 %0              @ %>:0$ =69P
H="TR,#$Y,#8S,%]P<F4N>&UL4$L%!@     &  8 B@$  !"Q 0    $!

end
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
