<SEC-DOCUMENT>0001104659-25-054901.txt : 20250530
<SEC-HEADER>0001104659-25-054901.hdr.sgml : 20250530
<ACCEPTANCE-DATETIME>20250530162124
ACCESSION NUMBER:		0001104659-25-054901
CONFORMED SUBMISSION TYPE:	8-K
PUBLIC DOCUMENT COUNT:		13
CONFORMED PERIOD OF REPORT:	20250524
ITEM INFORMATION:		Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers: Compensatory Arrangements of Certain Officers
ITEM INFORMATION:		Financial Statements and Exhibits
FILED AS OF DATE:		20250530
DATE AS OF CHANGE:		20250530

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			Proto Labs Inc
		CENTRAL INDEX KEY:			0001443669
		STANDARD INDUSTRIAL CLASSIFICATION:	FABRICATED STRUCTURAL METAL PRODUCTS [3440]
		ORGANIZATION NAME:           	04 Manufacturing
		EIN:				000000000
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		8-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-35435
		FILM NUMBER:		251011286

	BUSINESS ADDRESS:	
		STREET 1:		5540 Pioneer Creek
		CITY:			Maple Plain
		STATE:			MN
		ZIP:			55359
		BUSINESS PHONE:		763-479-7474

	MAIL ADDRESS:	
		STREET 1:		5540 Pioneer Creek
		CITY:			Maple Plain
		STATE:			MN
		ZIP:			55359
</SEC-HEADER>
<DOCUMENT>
<TYPE>8-K
<SEQUENCE>1
<FILENAME>tm2516513d1_8k.htm
<DESCRIPTION>FORM 8-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:us-roles="http://fasb.org/us-roles/2023" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:srt="http://fasb.org/srt/2023" xmlns:prlb="http://prlb.com/20250524">
<head>
     <title></title>
<meta http-equiv="Content-Type" content="text/html"/>
</head>
<!-- Field: Set; Name: xdx; ID: xdx_02C_US%2DGAAP%2D2023 -->
<!-- Field: Set; Name: xdx; ID: xdx_039_prlb_prlb.com_20250524 -->
<!-- Field: Set; Name: xdx; ID: xdx_04A_20250524_20250524 -->
<!-- Field: Set; Name: xdx; ID: xdx_059_edei%2D%2DAmendmentFlag_false -->
<!-- Field: Set; Name: xdx; ID: xdx_058_edei%2D%2DEntityCentralIndexKey_0001443669 -->
<!-- Field: Set; Name: xdx; ID: xdx_06B_USD_1_iso4217%2D%2DUSD -->
<!-- Field: Set; Name: xdx; ID: xdx_062_Shares_2_xbrli%2D%2Dshares -->
<!-- Field: Set; Name: xdx; ID: xdx_06D_USDPShares_3_iso4217%2D%2DUSD_xbrli%2D%2Dshares -->
<body style="font: 10pt Times New Roman, Times, Serif">
<div style="display: none">
<ix:header>
 <ix:hidden>
  <ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000003" name="dei:AmendmentFlag">false</ix:nonNumeric>
  <ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000004" name="dei:EntityCentralIndexKey">0001443669</ix:nonNumeric>
  </ix:hidden>
 <ix:references>
  <link:schemaRef xlink:href="prlb-20250524.xsd" xlink:type="simple"/>
  </ix:references>
 <ix:resources>
    <xbrli:context id="AsOf2025-05-24">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001443669</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2025-05-24</xbrli:startDate>
        <xbrli:endDate>2025-05-24</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:unit id="USD">
      <xbrli:measure>iso4217:USD</xbrli:measure>
    </xbrli:unit>
    <xbrli:unit id="Shares">
      <xbrli:measure>xbrli:shares</xbrli:measure>
    </xbrli:unit>
    <xbrli:unit id="USDPShares">
      <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>
  </ix:resources>
 </ix:header>
</div>


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

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></p>

<!-- Field: Rule-Page --><div style="margin-top: 3pt; margin-bottom: 3pt; width: 100%"><div style="border-top: Black 2pt solid; border-bottom: Black 1pt solid; font-size: 1pt">&#160;</div></div><!-- Field: /Rule-Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>UNITED STATES</b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>SECURITIES AND EXCHANGE COMMISSION</b></p>

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

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 18pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>FORM <span id="xdx_90C_edei--DocumentType_c20250524__20250524_zhRm6UfS8CQ1"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000009" name="dei:DocumentType">8-K</ix:nonNumeric></span></b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>CURRENT REPORT</b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>PURSUANT TO SECTION&#160;13 OR 15(d)&#160;OF</b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>THE SECURITIES EXCHANGE ACT OF 1934</b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>Date of Report (Date of earliest event reported):
<span id="xdx_907_edei--DocumentPeriodEndDate_c20250524__20250524_zhRBeQ2dIh05"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt:datemonthdayyearen" id="Fact000010" name="dei:DocumentPeriodEndDate">May 24, 2025</ix:nonNumeric></span></b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 18pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b><span id="xdx_906_edei--EntityRegistrantName_c20250524__20250524_zIBecVIOabva"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000011" name="dei:EntityRegistrantName">Proto Labs, Inc.</ix:nonNumeric></span></b></p>

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

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr>
    <td colspan="4" style="padding: 1.5pt 1.25pt; vertical-align: bottom; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_901_edei--EntityIncorporationStateCountryCode_c20250524__20250524_zhlbcxKvhIG7"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt-sec:stateprovnameen" id="Fact000012" name="dei:EntityIncorporationStateCountryCode">Minnesota</ix:nonNumeric></span></span></td>
    <td colspan="3" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="5" style="padding: 1.5pt 1.25pt; vertical-align: bottom; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_907_edei--EntityFileNumber_c20250524__20250524_zhbUOvMaQBa3"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000013" name="dei:EntityFileNumber">001-35435</ix:nonNumeric></span></span></td>
    <td colspan="3" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="7" style="padding: 1.5pt 1.25pt; vertical-align: bottom; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_902_edei--EntityTaxIdentificationNumber_c20250524__20250524_zr1PsdCNvA9d"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000014" name="dei:EntityTaxIdentificationNumber">41-1939628</ix:nonNumeric></span></span></td></tr>
  <tr>
    <td colspan="4" style="border-top: black 1pt solid; padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(State or other jurisdiction<br/>
of incorporation)</span></td>
    <td colspan="3" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="5" style="border-top: black 1pt solid; padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Commission File Number)</span></td>
    <td colspan="3" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="7" style="border-top: black 1pt solid; padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(IRS Employer<br/>
Identification Number)</span></td></tr>
  <tr>
    <td colspan="3" style="padding: 0.75pt 1pt">&#160;</td>
    <td colspan="7" style="padding: 0.75pt 1pt">&#160;</td>
    <td colspan="5" style="padding: 0.75pt 1pt">&#160;</td>
    <td colspan="2" style="padding: 0.75pt 1pt">&#160;</td>
    <td style="padding: 0.75pt 1pt">&#160;</td>
    <td style="padding: 0.75pt 1pt">&#160;</td>
    <td style="padding: 0.75pt 1pt">&#160;</td>
    <td style="padding: 0.75pt 1pt">&#160;</td>
    <td style="padding: 0.75pt 1pt">&#160;</td></tr>
  <tr>
    <td colspan="15" style="padding: 1.5pt 1.25pt; vertical-align: bottom">
    <p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><span id="xdx_909_edei--EntityAddressAddressLine1_c20250524__20250524_z6KB9Inzkp88"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000015" name="dei:EntityAddressAddressLine1">5540 Pioneer Creek Drive</ix:nonNumeric></span></p>
    <p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><span id="xdx_903_edei--EntityAddressCityOrTown_c20250524__20250524_zi58omdHypgk"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000016" name="dei:EntityAddressCityOrTown">Maple Plain</ix:nonNumeric></span>, <span id="xdx_901_edei--EntityAddressStateOrProvince_c20250524__20250524_zillGzlR2kUl"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt-sec:stateprovnameen" id="Fact000017" name="dei:EntityAddressStateOrProvince">Minnesota</ix:nonNumeric></span></p></td>
    <td colspan="4" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="3" style="padding: 1.5pt 1.25pt; vertical-align: bottom; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_90D_edei--EntityAddressPostalZipCode_c20250524__20250524_zGo4nPeOiGIh"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000018" name="dei:EntityAddressPostalZipCode">55359</ix:nonNumeric></span></span></td></tr>
  <tr>
    <td colspan="15" style="border-top: black 1pt solid; padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Address of principal executive offices)</span></td>
    <td colspan="4" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="3" style="border-top: black 1pt solid; padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Zip Code)</span></td></tr>
  <tr>
    <td colspan="15" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="4" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="3" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td></tr>
  <tr>
    <td colspan="15" style="padding: 1.5pt 1.25pt; vertical-align: bottom; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Registrant&#8217;s telephone number, including area code:</span></td>
    <td colspan="4" style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td colspan="3" style="border-bottom: black 1pt solid; padding: 1.5pt 1.25pt; vertical-align: bottom; font-size: 10pt; text-align: center">(<span id="xdx_90E_edei--CityAreaCode_c20250524__20250524_zltwWoGDnmMf"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000019" name="dei:CityAreaCode">763</ix:nonNumeric></span>) <span id="xdx_90B_edei--LocalPhoneNumber_c20250524__20250524_zICmmnBAHqIg"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000020" name="dei:LocalPhoneNumber">479-3680</ix:nonNumeric></span></td></tr>
  <tr>
    <td colspan="8" style="padding: 0.75pt 1pt">&#160;</td>
    <td colspan="8" style="padding: 0.75pt 1pt">&#160;</td>
    <td colspan="6" style="padding: 0.75pt 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td colspan="22" style="padding: 1.5pt 1.25pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Not</span> Applicable</td></tr>
  <tr style="vertical-align: bottom">
    <td colspan="22" style="border-top: black 1pt solid; padding: 1.5pt 1.25pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Former name or former address, if changed since last report)</span></td></tr>
  <tr>
    <td style="width: 10%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 10%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 14%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 1%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 5%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 6%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 6%"><span style="font-size: 1pt">&#160;</span></td>
    <td style="width: 6%"><span style="font-size: 1pt">&#160;</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Check the appropriate box below if the Form&#160;8-K filing is intended
to simultaneously satisfy the filing obligation of the registrant under any of the following provisions:</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Wingdings; font-size: 10pt"><span style="font-family: Wingdings"><span id="xdx_903_edei--WrittenCommunications_c20250524__20250524_zqsxmyiztrui"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt:booleanfalse" id="Fact000021" name="dei:WrittenCommunications">&#168;</ix:nonNumeric></span></span></span></td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Written communications pursuant to Rule&#160;425 under the Securities Act (17 CFR 230.425)</span></td></tr>
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td></tr>
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Wingdings; font-size: 10pt"><span style="font-family: Wingdings"><span id="xdx_902_edei--SolicitingMaterial_c20250524__20250524_z3bO4XxXn6k7"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt:booleanfalse" id="Fact000022" name="dei:SolicitingMaterial">&#168;</ix:nonNumeric></span></span></span></td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Soliciting material pursuant to Rule&#160;14a-12 under the Exchange Act (17 CFR 240.14a-12)</span></td></tr>
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td></tr>
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Wingdings; font-size: 10pt"><span style="font-family: Wingdings"><span id="xdx_90C_edei--PreCommencementTenderOffer_c20250524__20250524_ziox0ZP38r8c"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt:booleanfalse" id="Fact000023" name="dei:PreCommencementTenderOffer">&#168;</ix:nonNumeric></span></span></span></td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Pre-commencement communications pursuant to Rule&#160;14d-2(b)&#160;under the Exchange Act (17 CFR 240.14d-2(b))</span></td></tr>
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td></tr>
  <tr>
    <td style="padding-right: 1.25pt; padding-left: 1.25pt">&#160;</td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Wingdings; font-size: 10pt"><span style="font-family: Wingdings"><span id="xdx_90B_edei--PreCommencementIssuerTenderOffer_c20250524__20250524_zX8T92PdclFg"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt:booleanfalse" id="Fact000024" name="dei:PreCommencementIssuerTenderOffer">&#168;</ix:nonNumeric></span></span></span></td>
    <td style="padding: 1.5pt 1.25pt; vertical-align: top; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Pre-commencement communications pursuant to Rule&#160;13e-4(c)&#160;under the Exchange Act (17 CFR 240.13e-4(c))</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Securities registered pursuant to Section&#160;12(b)&#160;of the Act:</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="vertical-align: bottom">
    <td style="border-top: black 1pt solid; border-left: black 1pt solid; padding: 1.5pt 1.25pt 1.5pt 1.5pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Title of each class</span></td>
    <td style="border-top: black 1pt solid; border-left: black 1pt solid; padding: 1.5pt 1.25pt 1.5pt 1.5pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Trading Symbol(s)</span></td>
    <td style="border-top: black 1pt solid; border-right: black 1pt solid; border-left: black 1pt solid; padding: 1.5pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Name of each exchange on which registered</span></td></tr>
  <tr style="vertical-align: top">
    <td style="border-top: black 1pt solid; border-bottom: black 1pt solid; border-left: black 1pt solid; padding: 1.5pt 1.25pt 1.5pt 1.5pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_906_edei--Security12bTitle_c20250524__20250524_zc0rZNQFmEy7"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000025" name="dei:Security12bTitle">Common Stock, Par Value $0.001 Per Share</ix:nonNumeric></span></span></td>
    <td style="border-top: black 1pt solid; border-bottom: black 1pt solid; border-left: black 1pt solid; padding: 1.5pt 1.25pt 1.5pt 1.5pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_905_edei--TradingSymbol_c20250524__20250524_zTccNq2nJPC4"><ix:nonNumeric contextRef="AsOf2025-05-24" id="Fact000026" name="dei:TradingSymbol">PRLB</ix:nonNumeric></span></span></td>
    <td style="border: black 1pt solid; padding: 1.5pt; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_90D_edei--SecurityExchangeName_c20250524__20250524_zF3pKWjXOCn3"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt-sec:exchnameen" id="Fact000027" name="dei:SecurityExchangeName">New York Stock Exchange</ix:nonNumeric></span></span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Indicate by check mark whether the registrant is an emerging growth
company as defined in Rule&#160;405 of the Securities Act of 1933 (&#167; 230.405 of this chapter) or Rule&#160;12b-2 of the Securities
Exchange Act of 1934 (&#167; 240.12b-2 of this chapter).</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><span style="font-size: 10pt">Emerging growth company </span><span style="font-family: Wingdings"><span id="xdx_907_edei--EntityEmergingGrowthCompany_c20250524__20250524_zXKcUtGvzlUg"><ix:nonNumeric contextRef="AsOf2025-05-24" format="ixt:booleanfalse" id="Fact000028" name="dei:EntityEmergingGrowthCompany">&#168;</ix:nonNumeric></span></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; 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&#160;13(a)&#160;of the Exchange Act. </span><span style="font-family: Wingdings"><span style="font-family: Wingdings">&#168;</span></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></p>

<!-- Field: Rule-Page --><div style="margin-top: 3pt; margin-bottom: 3pt; width: 100%"><div style="border-top: Black 1pt solid; border-bottom: Black 2pt solid; font-size: 1pt">&#160;</div></div><!-- Field: /Rule-Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></p>

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

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr>
    <td style="vertical-align: top; width: 12%; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Item 5.02.</b></span></td>
    <td style="text-align: justify; vertical-align: bottom; width: 88%; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers; Compensatory Arrangements of Certain Officers.</b></span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><span style="background-color: white"><span style="text-decoration: underline">Consulting Arrangement with
Dr.&#160;Bodor</span></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
previously disclosed on a </span><a href="https://www.sec.gov/ix?doc=/Archives/edgar/data/0001443669/000110465925051610/tm2515767d1_8k.htm" style="-sec-extract: exhibit">Current Report on Form&#160;8-K</a> filed by Proto Labs,&#160;Inc., a Minnesota corporation (the &#8220;Company&#8221;),
with the Securities and Exchange Commission (the &#8220;Commission&#8221;), on May&#160;21, 2025,&#160;Robert Bodor ceased to be the President
and Chief Executive Officer of the Company, effective as of May&#160;20, 2025 (the &#8220;Transition Date&#8221;). In connection with
Dr.&#160;Bodor&#8217;s departure, Dr.&#160;Bodor and the Company entered into a Consulting Agreement, dated May&#160;20, 2025 (the &#8220;Prior
Consulting Agreement&#8221;), pursuant to which Dr.&#160;Bodor agreed to provide services to support the transition of management through
May&#160;25, 2025.</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><span style="background-color: white">On
May&#160;24, 2025, the Company and Dr.&#160;Bodor extended the term of the Prior Consulting Agreement until May&#160;28, 2025 to negotiate
the terms a longer-term consulting arrangement.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><span style="background-color: white">On
May&#160;28, 2025, the Company and Dr.&#160;Bodor entered into a new consulting agreement (the &#8220;Consulting Agreement&#8221;) pursuant
to which Dr.&#160;Bodor will provide transitional consulting services to the Company in exchange for a monthly consulting fee of $5,000
per month. The term of the Consulting Agreement will continue through November&#160;11, 2025, subject to Dr.&#160;Bodor signing, and not
rescinding, a customary general waiver and release of claims. The Company may terminate the Consulting Agreement as a result of a material
breach of the Consulting Agreement or the terms of the general waiver and release of claims.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><span style="background-color: white">Pursuant
to the Consulting Agreement, Dr.&#160;Bodor is entitled to hold all vested stock options granted to him under the Proto Labs&#8217; Amended
and Restated 2022 Long-Term Incentive Plan in accordance with their terms until the earlier of (1)&#160;his exercise of such stock options,
or (2)&#160;the termination or expiration of the Consulting Agreement, at which point all unvested and unexercisable portions of any outstanding
options will be forfeited without consideration, but the currently vested and exercisable portions of options may be exercised for a period
of three months after the date of such termination or expiration and will terminate upon the expiration of such period.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in">The foregoing description
of the Consulting Agreement does not purport to be complete and is qualified in its entirety by reference to the full text of the Consulting
Agreement as set forth in Exhibit&#160;10.2 to this Current Report on Form&#160;8-K and is incorporated herein by reference.</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="vertical-align: top">
    <td style="padding: 1.5pt 1.25pt; width: 11%; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Item 9.01.</b></span></td>
    <td style="padding: 1.5pt 1.25pt; width: 89%; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Financial Statements and Exhibits.</b></span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"/><td style="width: 0.5in"><b>(d)</b></td><td><b>Exhibits</b></td></tr></table>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
<tr>
<td style="vertical-align: bottom; width: 11%"><b>Exhibit&#160;No.</b></td>
<td style="vertical-align: bottom; width: 87%; font-size: 10pt; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Description</b></span></td></tr>
<tr>
<td style="font-size: 10pt"><a href="https://www.sec.gov/Archives/edgar/data/1443669/000110465925051610/tm2515767d1_ex10-3.htm" style="-sec-extract: exhibit"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">10.1</span></a></td>
<td style="text-align: justify; vertical-align: bottom; font-size: 10pt"><a href="https://www.sec.gov/Archives/edgar/data/1443669/000110465925051610/tm2515767d1_ex10-3.htm" style="-sec-extract: exhibit"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Consulting Agreement, dated May&#160;20, 2025, by and between Proto Labs,&#160;Inc. and Robert Bodor (incorporated by reference to Exhibit&#160;10.3 to the Company&#8217;s Form&#160;8-K, filed on May&#160;21, 2025)</span></a></td></tr>
<tr>
<td style="font-size: 10pt"><a href="tm2516513d1_ex10-2.htm"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">10.2</span></a></td>
<td style="vertical-align: bottom; font-size: 10pt"><a href="tm2516513d1_ex10-2.htm"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Consulting Agreement, dated May&#160;28, 2025, by and between Proto Labs,&#160;Inc. and Robert Bodor</span></a></td></tr>
<tr>
<td style="font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">104</span></td>
<td style="vertical-align: bottom; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Cover Page&#160;Interactive Data File (embedded within the Inline XBRL document)</span></td></tr>
</table>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"></p>

<!-- Field: Page; Sequence: 2 -->
    <div style="border-bottom: Black 1pt solid; margin-top: 12pt; margin-bottom: 6pt"><p style="font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"></p></div>
    <div style="break-before: page; margin-top: 6pt; margin-bottom: 12pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><b>SIGNATURE</b></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in">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 hereunto duly authorized.</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
<tr>
<td>&#160;</td>
<td>&#160;</td>
<td colspan="2" style="vertical-align: bottom">Proto Labs,&#160;Inc.</td></tr>
<tr>
<td style="width: 5%">&#160;</td>
<td style="width: 45%">&#160;</td>
<td style="width: 3%">&#160;</td>
<td style="width: 47%">&#160;</td></tr>
<tr>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td></tr>
<tr>
<td style="vertical-align: bottom; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:</span></td>
<td style="vertical-align: bottom; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">May&#160;30, 2025</span></td>
<td style="vertical-align: bottom; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</span></td>
<td style="vertical-align: bottom; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Daniel Schumacher</span></td></tr>
<tr>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td>
<td style="border-top: black 1pt solid; vertical-align: top; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Daniel Schumacher</span></td></tr>
<tr>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td>
<td style="vertical-align: top; font-size: 10pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief Financial Officer</span></td></tr>
</table>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></p>

<!-- Field: Page; Sequence: 3; Options: Last -->
    <div style="border-bottom: Black 1pt solid; margin-top: 12pt; margin-bottom: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&#160;</p>

<!-- Field: Set; Name: xdx; ID: xdx_08B_extensions -->
<!-- eJxFjdEKwjAMRb9g/xD6LNoNJrJHxxRxigwRX6vLpLg1I626fZJ/ad0QQyAk955cISZiTStdI8N5WeRwxKatlUMosEJGc0XvSDfbBPws8KatY2XcsP7AlDyDnplP5cXfB+dTWywTkPEskrMoBrlI4gUcdiL46imZSpdonFY1KFPCgalljU5xP344qo4MNf2QdEK2mkwC4VSO8hsiGUawp6d6Ed8t5HkqgslQgVgzPVrvyjqH5ktCVmPj4+xI/zv4AM9FSmM= -->
</body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.2
<SEQUENCE>2
<FILENAME>tm2516513d1_ex10-2.htm
<DESCRIPTION>EXHIBIT 10.2
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><B>Exhibit&nbsp;10.2</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">Proto Labs</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">5540 Pioneer Creek Drive</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">Maple Plain, MN 55359</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">May&nbsp;28, 2025</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Robert Bodor</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">To his last known address</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">on file with Proto Labs</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Dear Rob:</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We are pleased to extend an offer of a consulting
arrangement between Proto Labs,&nbsp;Inc. (&ldquo;<U>Proto Labs</U>&rdquo;) and you (&ldquo;<U>Consultant</U>&rdquo; or &ldquo;<U>you</U>&rdquo;).
If you accept the consulting arrangement described in this consulting letter agreement (this &ldquo;<U>Consulting Agreement</U>&rdquo;),
then you will begin providing the Services (as defined below) as of May&nbsp;29, 2025 (the &ldquo;<U>Consulting Start Date</U>&rdquo;).</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following are the terms of this Consulting
Agreement:</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in">Term:</TD><TD STYLE="text-align: justify">The period from the Consulting Start Date through the termination of this Consulting Agreement is referred
to as the &ldquo;<U>Term</U>.&rdquo; Proto Labs and Consultant agree that the Term will continue through the earliest of: (1)&nbsp;November&nbsp;11,
2025; (2)&nbsp;the expiration of the 21-day consideration period applicable to the General Waiver and Release of Claims (&ldquo;<U>Release</U>&rdquo;)
provided to you in connection with the termination of your employment with Proto Labs effective May&nbsp;20, 2025, if you do not sign
and return the Release to Proto Labs before the expiration of such 21-day period; (3)&nbsp;the date you rescind the Release if you sign
the Release and then rescind it within the 15-day period applicable to the Release; or (4)&nbsp;the date Proto Labs terminates this Consulting
Agreement as a result of your material breach of any obligations you have pursuant to the terms of the Release or this Consulting Agreement.
Upon termination of the Term for any reason, Consultant will receive payment of any unpaid Monthly Fees (as defined below) through the
end of the Term and any expenses to be reimbursed in accordance with the terms of this Consulting Agreement and will not be entitled to
receive any additional amounts from Proto Labs.</TD></TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in">Services:</TD><TD STYLE="text-align: justify">During the Term, Consultant shall provide such services as the Board of the Directors of Proto Labs reasonably
determines are necessary to support the transition of management of Proto Labs (the &ldquo;<U>Services</U>&rdquo;). It is understood and
agreed that Proto Labs has retained Consultant to provide the Services because of Consultant&rsquo;s specific skills, experience and knowledge.
Accordingly, Consultant agrees that all Services shall be performed personally by Consultant. Consultant is expected to devote no more
than twenty (20) hours per month to the performance of Services hereunder during the Term. Proto Labs does not guarantee any specific
minimum number of hours of Services during any week or month during the Term. Consultant agrees to devote Consultant&rsquo;s best efforts
to the performance of such Services. Consultant may determine, in his sole discretion, the means and manner of performing the Services,
including with respect to devoting full or partial days of work to the performance of the Services, except as expressly limited by this
Consulting Agreement. Proto Labs retains the right to require that Consultant satisfactorily perform the Services. Consultant may perform
the Services from the location(s)&nbsp;selected by Consultant. Subject to Consultant&rsquo;s specific obligations under this Consulting
Agreement and ongoing obligations to Proto Labs pursuant to the Release, nothing in this Consulting Agreement shall be construed to prevent
Consultant from performing consulting or employment services for other persons or companies during or after the Term. Consultant agrees
to perform the Services in accordance with generally accepted standards of Consultant&rsquo;s profession.</TD></TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in">Fees:</TD><TD STYLE="text-align: justify">In exchange for the Services, Proto Labs will pay Consultant a monthly fee of $5,000.00 per month, prorated
for any partial month during the Term (collectively, the &ldquo;<U>Monthly Fees</U>&rdquo;).</TD></TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in">Expenses:</TD><TD STYLE="text-align: justify">Except as otherwise provided herein or approved in advance by Proto Labs, expenses and costs incurred
by Consultant in the performance of the Services shall be paid and borne solely by Consultant without reimbursement from Proto Labs. Proto
Labs agrees to reimburse Consultant for any required travel expenses incurred by Consultant in performing the Services. Consultant will
provide all equipment and other materials necessary to perform the Services at Consultant&rsquo;s own expense, except that Proto Labs
will supply any specialized equipment and materials associated with Proto Labs&rsquo; business that are needed in the course of performing
the Services.</TD></TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in">Taxes:</TD><TD STYLE="text-align: justify">Proto Labs will neither withhold FICA or income tax payments nor withhold any amounts for, or make any
contributions on account of, unemployment compensation, worker&rsquo;s compensation, employee benefit plans or otherwise pursuant to any
United States, state, or local law or regulation with respect to the compensation it pays Consultant. Consultant acknowledges and agrees
that Consultant shall have sole responsibility for withholding and payment of all United States, state and local taxes or contributions
imposed or required under unemployment insurance, social security and income tax laws and for filing all required tax forms with respect
to any amounts paid by Proto Labs to Consultant hereunder, and agrees that Consultant shall pay all such taxes and contributions in accordance
with applicable law (including making such payments when due).</TD></TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in; text-align: left">Stock Options:</TD><TD STYLE="text-align: justify">For
purposes of Consultant&rsquo;s outstanding stock options granted under Proto Labs&rsquo; Amended and Restated 2022 Long-Term Incentive
Plan (the &ldquo;<U>Plan</U>&rdquo;), Consultant&rsquo;s Service (as defined in the Plan) will continue without interruption until the
termination or expiration of the Term. As a result, upon the termination or expiration of the Term, but not sooner, Consultant&rsquo;s
Service will end and his outstanding stock options will be treated in accordance with Section&nbsp;6(e)(3)&nbsp;of the Plan.</TD>
</TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in">Relationship:</TD><TD STYLE="text-align: justify">Consultant&rsquo;s relationship to Proto Labs shall be that of an independent contractor. The parties
do not intend that any agency or partnership relationship be created between them by this Consulting Agreement. Consultant understands
and agrees that Consultant is not an employee of Company. Consultant agrees that Consultant is not entitled to any Company employee benefits
or benefit plans of any kind, including but not limited to, worker&rsquo;s compensation insurance, unemployment insurance, health insurance,
life insurance, pension plan or any other benefit or insurance that Proto Labs provides to its employees. Consultant agrees that Consultant
is responsible for controlling the means by which the Services are completed. Such means are subject to the Consultant&rsquo;s discretion,
which discretion must be exercised consistent with the goal of keeping the Services on schedule and in accordance with the terms of this
Consulting Agreement. If any taxing authority determines that Consultant or Consultant is an employee of Proto Labs, the parties agree
that Consultant shall not be deemed a participant in any benefit plan of Proto Labs irrespective of such determination, except as may
be required by applicable law.</TD></TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 0"></TD><TD STYLE="width: 1in; text-align: left">Governing Law &amp; Venue:</TD><TD STYLE="text-align: justify">The
validity, interpretation and performance of this Consulting Agreement shall be governed by the laws of the State of Minnesota, excluding
its conflict of law principles. All litigation or other legal proceedings arising out of or related to this Consulting Agreement shall
only be brought in the state courts of the State of Minnesota and the United States District Court located therein, and the parties hereby
submit to the exclusive personal and subject matter jurisdiction and venue of such courts and waive and defense based on lack of jurisdiction
or inconvenient forum. The award, order and/or judgment of any such court may be entered in any court of competent jurisdiction.</TD>
</TR></TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">To accept this Consulting Agreement, Consultant
must counter-sign below and return the signed Consulting Agreement to me on or before the Consulting Start Date. If Consultant does not
sign and return this Consulting Agreement on or before the Consulting Start Date, then this Consulting Agreement is null and void and
of no effect, and Consultant will not receive or be eligible to receive any Monthly Fees under this Consulting Agreement.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">This Consulting Agreement sets forth the entire
agreement and understanding between Proto Labs and Consultant regarding the subject matter of this Consulting Agreement and supersedes
any and all other agreements, either oral or in writing, between Proto Labs and Consultant related to such subject matter. For avoidance
of doubt, this Consulting Agreement does not supersede or modify the Release or any of the terms of the Employment Agreement, the Non-Disclosure
Agreement, or Non-Competition Agreement (each as defined in the Release) that survive Consultant&rsquo;s last day of employment with Proto
Labs, which shall remain in full force and effect in accordance with their terms.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"> Sincerely,</P>



<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; width: 100%">
  <TR STYLE="vertical-align: bottom">
    <TD COLSPAN="2" STYLE="font: bold 10pt Times New Roman, Times, Serif; text-transform: uppercase"><FONT STYLE="font-size: 10pt">Proto
    Labs, inc.</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 5%"><FONT STYLE="font-size: 10pt">By:</FONT></TD>
    <TD STYLE="border-bottom: Black 1pt solid; font: 10pt Times New Roman, Times, Serif; width: 45%"><FONT STYLE="font-size: 10pt">/s/ Agnes Semington</FONT></TD>
    <TD STYLE="width: 50%"><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-size: 10pt">Name:</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-size: 10pt">Agnes Semington</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-size: 10pt">Its:</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-size: 10pt">Chief Human Resources Officer</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  </TABLE>


<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">I have read and accepted the terms of this Consulting Agreement as
of this 28th day of May, 2025.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 0; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 3%">By:</TD><TD STYLE="border-bottom: Black 1pt solid; width: 47%; text-align: left">/s/ Robert Bodor</TD><TD STYLE="text-align: justify; width: 50%">&nbsp;</TD>
</TR><TR STYLE="vertical-align: top; text-align: justify">
<TD>&nbsp;</TD><TD STYLE="text-align: left">Robert Bodor</TD><TD STYLE="text-align: justify">&nbsp;</TD></TR>
     </TABLE>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>

<!-- Field: Page; Sequence: 4; Options: Last -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></P></DIV>
    <!-- Field: /Page -->

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>3
<FILENAME>prlb-20250524.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" ?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 6.0b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
    <!-- Field: Doc-Info; Name: Misc; Value: +aA5w7xRiXgen8uLa3ZcWaiP+bOdzZR+GYkxtmBwbXlKXy8h7VkJByz0/WdWITQO -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:srt="http://fasb.org/srt/2023" xmlns:srt-types="http://fasb.org/srt-types/2023" xmlns:prlb="http://prlb.com/20250524" elementFormDefault="qualified" targetNamespace="http://prlb.com/20250524">
    <annotation>
      <appinfo>
        <link:roleType roleURI="http://prlb.com/role/Cover" id="Cover">
          <link:definition>00000001 - Document - Cover</link:definition>
          <link:usedOn>link:presentationLink</link:usedOn>
          <link:usedOn>link:calculationLink</link:usedOn>
          <link:usedOn>link:definitionLink</link:usedOn>
        </link:roleType>
        <link:linkbaseRef xlink:type="simple" xlink:href="prlb-20250524_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Presentation Links" />
        <link:linkbaseRef xlink:type="simple" xlink:href="prlb-20250524_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Label Links" />
      </appinfo>
    </annotation>
    <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
    <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
    <import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd" />
    <import namespace="http://fasb.org/us-gaap/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd" />
    <import namespace="http://fasb.org/us-types/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd" />
    <import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
    <import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd" />
    <import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd" />
    <import namespace="http://fasb.org/srt-types/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>4
<FILENAME>prlb-20250524_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 6.0b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" />
    <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US">Cover [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US">Document Type</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US">Amendment Flag</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentDescription" xlink:label="dei_AmendmentDescription" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentDescription" xlink:to="dei_AmendmentDescription_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentDescription_lbl" xml:lang="en-US">Amendment Description</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentRegistrationStatement" xlink:label="dei_DocumentRegistrationStatement" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentRegistrationStatement" xlink:to="dei_DocumentRegistrationStatement_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentRegistrationStatement_lbl" xml:lang="en-US">Document Registration Statement</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAnnualReport_lbl" xml:lang="en-US">Document Annual Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentQuarterlyReport_lbl" xml:lang="en-US">Document Quarterly Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentTransitionReport_lbl" xml:lang="en-US">Document Transition Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentShellCompanyReport" xlink:label="dei_DocumentShellCompanyReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentShellCompanyReport" xlink:to="dei_DocumentShellCompanyReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentShellCompanyReport_lbl" xml:lang="en-US">Document Shell Company Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentShellCompanyEventDate" xlink:label="dei_DocumentShellCompanyEventDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentShellCompanyEventDate" xlink:to="dei_DocumentShellCompanyEventDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentShellCompanyEventDate_lbl" xml:lang="en-US">Document Shell Company Event Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodStartDate" xlink:label="dei_DocumentPeriodStartDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodStartDate" xlink:to="dei_DocumentPeriodStartDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodStartDate_lbl" xml:lang="en-US">Document Period Start Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US">Document Period End Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US">Document Fiscal Period Focus</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US">Document Fiscal Year Focus</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US">Current Fiscal Year End Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US">Entity File Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US">Entity Registrant Name</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US">Entity Central Index Key</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPrimarySicNumber" xlink:label="dei_EntityPrimarySicNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPrimarySicNumber" xlink:to="dei_EntityPrimarySicNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityPrimarySicNumber_lbl" xml:lang="en-US">Entity Primary SIC Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US">Entity Tax Identification Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US">Entity Address, Address Line One</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine2_lbl" xml:lang="en-US">Entity Address, Address Line Two</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine3" xlink:to="dei_EntityAddressAddressLine3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine3_lbl" xml:lang="en-US">Entity Address, Address Line Three</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US">Entity Address, City or Town</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US">Entity Address, State or Province</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCountry" xlink:label="dei_EntityAddressCountry" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCountry" xlink:to="dei_EntityAddressCountry_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCountry_lbl" xml:lang="en-US">Entity Address, Country</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CountryRegion" xlink:label="dei_CountryRegion" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CountryRegion" xlink:to="dei_CountryRegion_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CountryRegion_lbl" xml:lang="en-US">Country Region</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US">City Area Code</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US">Local Phone Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Extension" xlink:label="dei_Extension" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Extension" xlink:to="dei_Extension_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Extension_lbl" xml:lang="en-US">Extension</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_WrittenCommunications" xlink:to="dei_WrittenCommunications_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_WrittenCommunications_lbl" xml:lang="en-US">Written Communications</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SolicitingMaterial" xlink:to="dei_SolicitingMaterial_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SolicitingMaterial_lbl" xml:lang="en-US">Soliciting Material</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementTenderOffer" xlink:to="dei_PreCommencementTenderOffer_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_PreCommencementTenderOffer_lbl" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementIssuerTenderOffer" xlink:to="dei_PreCommencementIssuerTenderOffer_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_PreCommencementIssuerTenderOffer_lbl" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US">Title of 12(b) Security</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_NoTradingSymbolFlag" xlink:label="dei_NoTradingSymbolFlag" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_NoTradingSymbolFlag" xlink:to="dei_NoTradingSymbolFlag_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_NoTradingSymbolFlag_lbl" xml:lang="en-US">No Trading Symbol Flag</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US">Trading Symbol</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US">Security Exchange Name</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12gTitle" xlink:label="dei_Security12gTitle" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12gTitle" xlink:to="dei_Security12gTitle_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12gTitle_lbl" xml:lang="en-US">Title of 12(g) Security</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityReportingObligation" xlink:label="dei_SecurityReportingObligation" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityReportingObligation" xlink:to="dei_SecurityReportingObligation_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityReportingObligation_lbl" xml:lang="en-US">Security Reporting Obligation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AnnualInformationForm" xlink:label="dei_AnnualInformationForm" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AnnualInformationForm" xlink:to="dei_AnnualInformationForm_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AnnualInformationForm_lbl" xml:lang="en-US">Annual Information Form</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="dei_AuditedAnnualFinancialStatements" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditedAnnualFinancialStatements" xlink:to="dei_AuditedAnnualFinancialStatements_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditedAnnualFinancialStatements_lbl" xml:lang="en-US">Audited Annual Financial Statements</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityWellKnownSeasonedIssuer_lbl" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityVoluntaryFilers_lbl" xml:lang="en-US">Entity Voluntary Filers</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US">Entity Current Reporting Status</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US">Entity Interactive Data Current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US">Entity Filer Category</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US">Entity Small Business</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US">Entity Emerging Growth Company</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityExTransitionPeriod" xlink:label="dei_EntityExTransitionPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityExTransitionPeriod" xlink:to="dei_EntityExTransitionPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityExTransitionPeriod_lbl" xml:lang="en-US">Elected Not To Use the Extended Transition Period</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAccountingStandard" xlink:label="dei_DocumentAccountingStandard" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAccountingStandard" xlink:to="dei_DocumentAccountingStandard_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAccountingStandard_lbl" xml:lang="en-US">Document Accounting Standard</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_OtherReportingStandardItemNumber" xlink:label="dei_OtherReportingStandardItemNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_OtherReportingStandardItemNumber" xlink:to="dei_OtherReportingStandardItemNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_OtherReportingStandardItemNumber_lbl" xml:lang="en-US">Other Reporting Standard Item Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US">Entity Shell Company</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPublicFloat" xlink:to="dei_EntityPublicFloat_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityPublicFloat_lbl" xml:lang="en-US">Entity Public Float</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityBankruptcyProceedingsReportingCurrent" xlink:label="dei_EntityBankruptcyProceedingsReportingCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityBankruptcyProceedingsReportingCurrent" xlink:to="dei_EntityBankruptcyProceedingsReportingCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityBankruptcyProceedingsReportingCurrent_lbl" xml:lang="en-US">Entity Bankruptcy Proceedings, Reporting Current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentsIncorporatedByReferenceTextBlock" xlink:label="dei_DocumentsIncorporatedByReferenceTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentsIncorporatedByReferenceTextBlock" xlink:to="dei_DocumentsIncorporatedByReferenceTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentsIncorporatedByReferenceTextBlock_lbl" xml:lang="en-US">Documents Incorporated by Reference [Text Block]</link:label>
    </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>5
<FILENAME>prlb-20250524_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 6.0b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
    <link:roleRef roleURI="http://prlb.com/role/Cover" xlink:href="prlb-20250524.xsd#Cover" xlink:type="simple" />
    <link:presentationLink xlink:type="extended" xlink:role="http://prlb.com/role/Cover" xlink:title="00000001 - Document - Cover">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="loc_deiDocumentType" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentType" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="loc_deiAmendmentFlag" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentFlag" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentDescription" xlink:label="loc_deiAmendmentDescription" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentDescription" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentRegistrationStatement" xlink:label="loc_deiDocumentRegistrationStatement" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentRegistrationStatement" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAnnualReport" xlink:label="loc_deiDocumentAnnualReport" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentAnnualReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentQuarterlyReport" xlink:label="loc_deiDocumentQuarterlyReport" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentQuarterlyReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport" xlink:label="loc_deiDocumentTransitionReport" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentTransitionReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentShellCompanyReport" xlink:label="loc_deiDocumentShellCompanyReport" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentShellCompanyReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentShellCompanyEventDate" xlink:label="loc_deiDocumentShellCompanyEventDate" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentShellCompanyEventDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodStartDate" xlink:label="loc_deiDocumentPeriodStartDate" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodStartDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_deiDocumentPeriodEndDate" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodEndDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_deiDocumentFiscalPeriodFocus" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalPeriodFocus" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_deiDocumentFiscalYearFocus" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalYearFocus" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_deiCurrentFiscalYearEndDate" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCurrentFiscalYearEndDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber" xlink:label="loc_deiEntityFileNumber" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFileNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="loc_deiEntityRegistrantName" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityRegistrantName" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="loc_deiEntityCentralIndexKey" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCentralIndexKey" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPrimarySicNumber" xlink:label="loc_deiEntityPrimarySicNumber" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityPrimarySicNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_deiEntityTaxIdentificationNumber" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityTaxIdentificationNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_deiEntityIncorporationStateCountryCode" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityIncorporationStateCountryCode" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_deiEntityAddressAddressLine1" />
      <link:presentationArc order="200" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine2" xlink:label="loc_deiEntityAddressAddressLine2" />
      <link:presentationArc order="210" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine2" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine3" xlink:label="loc_deiEntityAddressAddressLine3" />
      <link:presentationArc order="220" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine3" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_deiEntityAddressCityOrTown" />
      <link:presentationArc order="230" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCityOrTown" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_deiEntityAddressStateOrProvince" />
      <link:presentationArc order="240" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressStateOrProvince" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCountry" xlink:label="loc_deiEntityAddressCountry" />
      <link:presentationArc order="250" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCountry" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_deiEntityAddressPostalZipCode" />
      <link:presentationArc order="260" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressPostalZipCode" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CountryRegion" xlink:label="loc_deiCountryRegion" />
      <link:presentationArc order="270" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCountryRegion" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode" xlink:label="loc_deiCityAreaCode" />
      <link:presentationArc order="280" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCityAreaCode" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber" xlink:label="loc_deiLocalPhoneNumber" />
      <link:presentationArc order="290" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiLocalPhoneNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Extension" xlink:label="loc_deiExtension" />
      <link:presentationArc order="300" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiExtension" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_WrittenCommunications" xlink:label="loc_deiWrittenCommunications" />
      <link:presentationArc order="310" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiWrittenCommunications" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SolicitingMaterial" xlink:label="loc_deiSolicitingMaterial" />
      <link:presentationArc order="320" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSolicitingMaterial" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementTenderOffer" xlink:label="loc_deiPreCommencementTenderOffer" />
      <link:presentationArc order="330" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiPreCommencementTenderOffer" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="loc_deiPreCommencementIssuerTenderOffer" />
      <link:presentationArc order="340" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiPreCommencementIssuerTenderOffer" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle" xlink:label="loc_deiSecurity12bTitle" />
      <link:presentationArc order="350" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12bTitle" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_NoTradingSymbolFlag" xlink:label="loc_deiNoTradingSymbolFlag" />
      <link:presentationArc order="360" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiNoTradingSymbolFlag" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol" xlink:label="loc_deiTradingSymbol" />
      <link:presentationArc order="370" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiTradingSymbol" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName" xlink:label="loc_deiSecurityExchangeName" />
      <link:presentationArc order="380" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityExchangeName" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12gTitle" xlink:label="loc_deiSecurity12gTitle" />
      <link:presentationArc order="390" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12gTitle" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityReportingObligation" xlink:label="loc_deiSecurityReportingObligation" />
      <link:presentationArc order="400" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityReportingObligation" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AnnualInformationForm" xlink:label="loc_deiAnnualInformationForm" />
      <link:presentationArc order="410" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAnnualInformationForm" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="loc_deiAuditedAnnualFinancialStatements" />
      <link:presentationArc order="420" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAuditedAnnualFinancialStatements" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_deiEntityWellKnownSeasonedIssuer" />
      <link:presentationArc order="430" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityWellKnownSeasonedIssuer" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_deiEntityVoluntaryFilers" />
      <link:presentationArc order="440" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityVoluntaryFilers" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_deiEntityCurrentReportingStatus" />
      <link:presentationArc order="450" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCurrentReportingStatus" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_deiEntityInteractiveDataCurrent" />
      <link:presentationArc order="460" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityInteractiveDataCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory" xlink:label="loc_deiEntityFilerCategory" />
      <link:presentationArc order="470" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFilerCategory" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness" xlink:label="loc_deiEntitySmallBusiness" />
      <link:presentationArc order="480" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntitySmallBusiness" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_deiEntityEmergingGrowthCompany" />
      <link:presentationArc order="490" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityEmergingGrowthCompany" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityExTransitionPeriod" xlink:label="loc_deiEntityExTransitionPeriod" />
      <link:presentationArc order="500" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityExTransitionPeriod" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAccountingStandard" xlink:label="loc_deiDocumentAccountingStandard" />
      <link:presentationArc order="510" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentAccountingStandard" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_OtherReportingStandardItemNumber" xlink:label="loc_deiOtherReportingStandardItemNumber" />
      <link:presentationArc order="520" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiOtherReportingStandardItemNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany" xlink:label="loc_deiEntityShellCompany" />
      <link:presentationArc order="530" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityShellCompany" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPublicFloat" xlink:label="loc_deiEntityPublicFloat" />
      <link:presentationArc order="540" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityPublicFloat" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityBankruptcyProceedingsReportingCurrent" xlink:label="loc_deiEntityBankruptcyProceedingsReportingCurrent" />
      <link:presentationArc order="550" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityBankruptcyProceedingsReportingCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_deiEntityCommonStockSharesOutstanding" />
      <link:presentationArc order="560" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCommonStockSharesOutstanding" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentsIncorporatedByReferenceTextBlock" xlink:label="loc_deiDocumentsIncorporatedByReferenceTextBlock" />
      <link:presentationArc order="570" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentsIncorporatedByReferenceTextBlock" xlink:type="arc" />
    </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>7
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/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.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cover<br></strong></div></th>
<th class="th"><div>May 24, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [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="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">8-K<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">May 24,  2025<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-35435<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">Proto Labs, Inc.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001443669<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">41-1939628<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">MN<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">5540 Pioneer Creek Drive<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Maple Plain<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">MN<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">55359<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">763<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">479-3680<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_WrittenCommunications', window );">Written Communications</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SolicitingMaterial', window );">Soliciting Material</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementTenderOffer', window );">Pre-commencement Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementIssuerTenderOffer', window );">Pre-commencement Issuer Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, Par Value $0.001 Per Share<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">PRLB<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NYSE<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_CityAreaCode</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_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_CoverAbstract</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityAddressAddressLine1</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_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityAddressCityOrTown</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_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityAddressPostalZipCode</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_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityAddressStateOrProvince</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:stateOrProvinceItemType</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="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-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityFileNumber</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:fileNumberItemType</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_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityIncorporationStateCountryCode</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:edgarStateCountryItemType</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="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-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="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-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_EntityTaxIdentificationNumber</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:employerIdItemType</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_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_LocalPhoneNumber</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_PreCommencementIssuerTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="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 13e<br> -Subsection 4c<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_PreCommencementIssuerTenderOffer</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_PreCommencementTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="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 14d<br> -Subsection 2b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_PreCommencementTenderOffer</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ 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_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="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 d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_SecurityExchangeName</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:edgarExchangeCodeItemType</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_SolicitingMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="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> -Section 14a<br> -Number 240<br> -Subsection 12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_SolicitingMaterial</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_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_WrittenCommunications">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 425<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_WrittenCommunications</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<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>9
<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>11
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>1</ContextCount>
  <ElementCount>22</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>0</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>3</UnitCount>
  <MyReports>
    <Report instance="tm2516513d1_8k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>00000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://prlb.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>prlb-20250524.xsd</File>
    <File>prlb-20250524_lab.xml</File>
    <File>prlb-20250524_pre.xml</File>
    <File doctype="8-K" isOnlyDei="true" isUsgaap="true" original="tm2516513d1_8k.htm">tm2516513d1_8k.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="22">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>13
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tm2516513d1_8k.htm": {
   "nsprefix": "prlb",
   "nsuri": "http://prlb.com/20250524",
   "dts": {
    "schema": {
     "local": [
      "prlb-20250524.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd",
      "https://xbrl.sec.gov/country/2023/country-2023.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd"
     ]
    },
    "labelLink": {
     "local": [
      "prlb-20250524_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "prlb-20250524_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "tm2516513d1_8k.htm"
     ]
    }
   },
   "keyStandard": 22,
   "keyCustom": 0,
   "axisStandard": 0,
   "axisCustom": 0,
   "memberStandard": 0,
   "memberCustom": 0,
   "hidden": {
    "total": 2,
    "http://xbrl.sec.gov/dei/2023": 2
   },
   "contextCount": 1,
   "entityCount": 1,
   "segmentCount": 0,
   "elementCount": 59,
   "unitCount": 3,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/dei/2023": 22
   },
   "report": {
    "R1": {
     "role": "http://prlb.com/role/Cover",
     "longName": "00000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "AsOf2025-05-24",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "b",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tm2516513d1_8k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-05-24",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "b",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tm2516513d1_8k.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "dei_AmendmentDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentDescription",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Description",
        "documentation": "Description of changes contained within amended document."
       }
      }
     },
     "auth_ref": []
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "dei_AnnualInformationForm": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AnnualInformationForm",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual Information Form",
        "documentation": "Boolean flag with value true on a form if it is an annual report containing an annual information form."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "dei_AuditedAnnualFinancialStatements": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditedAnnualFinancialStatements",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Audited Annual Financial Statements",
        "documentation": "Boolean flag with value true on a form if it is an annual report containing audited financial statements."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CountryRegion": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CountryRegion",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Country Region",
        "documentation": "Region code of country"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAccountingStandard": {
     "xbrltype": "accountingStandardItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentAccountingStandard",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Accounting Standard",
        "documentation": "The basis of accounting the registrant has used to prepare the financial statements included in this filing This can either be 'U.S. GAAP', 'International Financial Reporting Standards', or 'Other'."
       }
      }
     },
     "auth_ref": [
      "r13"
     ]
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r13",
      "r14"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodStartDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodStartDate",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period Start Date",
        "documentation": "The start date of the period covered in the document, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "dei_DocumentRegistrationStatement": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentRegistrationStatement",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Registration Statement",
        "documentation": "Boolean flag that is true only for a form used as a registration statement."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_DocumentShellCompanyEventDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentShellCompanyEventDate",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Shell Company Event Date",
        "documentation": "Date of event requiring a shell company report."
       }
      }
     },
     "auth_ref": [
      "r13"
     ]
    },
    "dei_DocumentShellCompanyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentShellCompanyReport",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Shell Company Report",
        "documentation": "Boolean flag that is true for a Shell Company Report pursuant to section 13 or 15(d) of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r13"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Documents Incorporated by Reference [Text Block]",
        "documentation": "Documents incorporated by reference."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine3": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine3",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line Three",
        "documentation": "Address Line 3 such as an Office Park"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCountry": {
     "xbrltype": "countryCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCountry",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Country",
        "documentation": "ISO 3166-1 alpha-2 country code."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityBankruptcyProceedingsReportingCurrent": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityBankruptcyProceedingsReportingCurrent",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Bankruptcy Proceedings, Reporting Current",
        "documentation": "For registrants involved in bankruptcy proceedings during the preceding five years, the value Yes indicates that the registrant has filed all documents and reports required to be filed by Section 12, 13 or 15(d) of the Securities Exchange Act of 1934 subsequent to the distribution of securities under a plan confirmed by a court; the value No indicates the registrant has not.  Registrants not involved in bankruptcy proceedings during the preceding five years should not report this element."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntityExTransitionPeriod": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityExTransitionPeriod",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Elected Not To Use the Extended Transition Period",
        "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r16"
     ]
    },
    "dei_EntityPrimarySicNumber": {
     "xbrltype": "sicNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityPrimarySicNumber",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Primary SIC Number",
        "documentation": "Primary Standard Industrial Classification (SIC) Number for the Entity."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "dei_Extension": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Extension",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Extension",
        "documentation": "Extension number for local phone number."
       }
      }
     },
     "auth_ref": []
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "dei_NoTradingSymbolFlag": {
     "xbrltype": "trueItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "NoTradingSymbolFlag",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "No Trading Symbol Flag",
        "documentation": "Boolean flag that is true only for a security having no trading symbol."
       }
      }
     },
     "auth_ref": []
    },
    "dei_OtherReportingStandardItemNumber": {
     "xbrltype": "otherReportingStandardItemNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "OtherReportingStandardItemNumber",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Reporting Standard Item Number",
        "documentation": "\"Item 17\" or \"Item 18\" specified when the basis of accounting is neither US GAAP nor IFRS."
       }
      }
     },
     "auth_ref": [
      "r13"
     ]
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "PreCommencementIssuerTenderOffer",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre-commencement Issuer Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "dei_PreCommencementTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "PreCommencementTenderOffer",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre-commencement Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_Security12gTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12gTitle",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(g) Security",
        "documentation": "Title of a 12(g) registered security."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "dei_SecurityReportingObligation": {
     "xbrltype": "securityReportingObligationItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityReportingObligation",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Reporting Obligation",
        "documentation": "15(d), indicating whether the security has a reporting obligation under that section of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "dei_SolicitingMaterial": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SolicitingMaterial",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Soliciting Material",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "dei_WrittenCommunications": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "WrittenCommunications",
     "presentation": [
      "http://prlb.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Written Communications",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-23"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "g"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12, 13, 15d"
  },
  "r7": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r8": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r9": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "15",
   "Subsection": "d"
  },
  "r10": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Section": "14a",
   "Number": "240",
   "Subsection": "12"
  },
  "r11": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r12": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r13": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r14": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r15": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r16": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r17": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r18": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "425"
  },
  "r19": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "7A",
   "Section": "B",
   "Subsection": "2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>14
<FILENAME>0001104659-25-054901-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001104659-25-054901-xbrl.zip
M4$L#!!0    ( *N"OEJY!JN;)@,  -8+   1    <')L8BTR,#(U,#4R-"YX
M<V2U5EESVC 0?N],_X/JUXP/H.0@D$R.28:6-"GDH'GIR+8 #;+D2G* _/I*
MOC@,+M"6)VGW^[[=E79EFN?3@( WQ 5FM&54+,< B'K,QW38,IYZYD7OJMTV
MP/G9QP] _9J?3!/<8$3\!KAFGMFF W8*OL$ -< MHHA#R?@I>(8DTA9V@PGB
MX(H%(4$2*4<2J0$.+<<%IKF%[#.B/N-/W78N.Y(R% W;GDPF%F5O<,+X6%@>
M"[83[$DH(Y&K.5,G_6U'O\/"R\D'\*(^.9IV<7^(Z''4@;57[P7BAP/WWG]_
M[1[<_AA/97 Y<?OD:W]V/#IZ'G^YG+T[]HO_TG[\?I^$; IOA ((U%U0T3)T
M?6EYDYK%^-"N.D[%[M]U>C'.2("-*<%TO Y>.3DYL6-O!BT@IRXGF73-UFX7
M"I0K*R\NP6,J)*3>$MZ7.6$17+<3YQ(4KX4>)E"<07VT@A/(LX;LS58.A:_6
M,F DS"&$80X>0.'&HJEC"2RX+ *5<15DREF(Q%IHXEHBA)RX.59O=#]J1-VI
M5S^KH2(H0%3>,!Y<HP&,B$KB5P0)'F#D&T!"/D12-Y@(H8=*E+(.A90RU<AJ
MF%*+MH4A5IV:&Y1)WVR#,X(>5<I +]0D%>6UP[YBZB$P /9;1K)<$,JD?#3
M%,=ATZFI %//2*3+4\N8V;17P46E2"#_GI[%ZY CH>AQ.1UE2/DII)SK0>)%
M9"_J/+\R9FK/#K%PNMGP=-$ Q$/7T.W1,@36KYZ1VD8<#5J&/G SN\N?JFQ+
MM4\&T1%*ABZ^H]632@-G$I![!97"HZ!$6(BXQ*J'%R8_21U+37]8" -T'&$
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
M?-W8#>Z]M,4W[I=[]ZK=\C]02P,$%     @ JX*^6@- $B=3%@  VH@  !(
M  !T;3(U,38U,3-D,5\X:RYH=&WM/6M;VLK6W_D5\W+./ML^1RX)%P&5_2!>
M2EN5 K8]^XO/D R0&I)T$A3ZZ]^U9A)((%&@:JW=?=HJR<R:->N^UEPX^&LZ
M-LDMXZYA6X=_*MG\GX19FJT;UO#PST:WV6K]^5<]=3#RH!DTM=S#],CSG%HN
M=W=WE[TK9&T^S"G5:C4WQ39IV:@VC6VGYO-*[LOYAZXV8F.:,2S7HY;&YIU,
MP[I)AH]OYTW[W#0B3?%),$@AMP(:WNJ+#N'&Y9Q\&6GJQ38MR:9>T-1P[:*J
M[-V'AVPQ[S!-:JL@SC!#]N6H\V'1W(MOOVB:\SBUW('-Q]0#%B*D4B:O9M1R
M"$C&95H$$'S.#NW;!^%4,@4E@+/"G.A,\76?NG.*ZVR)W,&8\ )ZJ(6@X<3-
M#"EUYHT'U.T+L/Z+Y<;<-ID;VUJ\B337[(GE\5D\(O[+2 >7>ZN@X6&DD</-
M_KP5?LAJ]AA;E/(EM9A&=6%4KZ<(_CGP#,]D]8.<_)DZ&#./$NR<8=\FQNUA
MNFE;'K.\3&_F /4T^>DP[;&IEQ,ZE8->.0GRX/\R&7)J,%.OD2[S]LD%';,:
MF>K3?=(Z%K]<Y]7F]57W#_7XK-%HPP]$G60R:W8N5*]Q2M?!O*Z#>:T/HMB8
M=]JB=ZEZS4!& ''XVQ@S2X=_WJE)A]<#:KIL TB5$*03"Q@P:P(H3LV6I;/I
M>S:[SH-%*A8+Y7)U?;#E(R#O\;5R[2NWA ^/-@"A7G='E#/W6KT6IDS"<,6S
M#< <(R9M'U1A!:$DV'U;GQ'7FYGL,#T >:L1)>]XI&>,H<4%NR,=>TRM7?E@
M%\;GQ@#%6C=N@VZZX3HFG=6(95L,WQG3&HHHXR#WXH.AZ\Q")<!/T.IB,@8X
MFA3PJ==A@\-TP[T<H(1D\J4,: XQ],/T*=6\//X!?;-@TC 6,VH104C7A20<
MY"*0?V2L8GBL6%%)UQ>R$C=P+CQG1(.S >/@2YDKWJ-]K+G"\0$Z1'BSVH@C
M9JAJF4!1LE-73_NO/; (AVG7&#LF0RO@#Q.!+(=R[0GW1X)&@NTU?_)BHDN3
M]VU3T)*)"0</YX\-'5\,#,:)0)S%^I!FZWV4-LN=YX/EXD;SQW* D+:^@@)X
M<>X=4X_5%]@'<!;OEGN!J"3T"=XLH10>/7CFDR]"THEE2'J"<BT3<<RH.^&L
M[BMA#9H$H()7$?@(*QZXU.<D^/[D19LM!U@8C>5!0,.!<2L$Q9Y"V*EG\\7;
MC>>^C%X,S-"(Q\RRQX;UP)@/TF-YT!BPP>OP])?)Z*O>0M.DROLV[R '?>NI
M5.K "4SDF/*A8=5(/EW_S[^4<G[_(.?4PPW6-;W[9 X*F@(X'U#(170F)LNT
MZ5!XQ["=ECTSGNW42,'Q E"9ONUY]MA_=F?HW@@QR?^1CO3NVQQF)WL?F52[
M(2I@X-JFH>\3_V4 2;Y7%N]Q>AG7^ YN"YXNB("$\O\/S2 7F<*CD.E1J;Y/
MT!IDJ&D,X9$&1HQQ(%:_?G71ZIT<DVZOT3OI'N3Z]:<>L'O2O.JT>JV3+FE<
M').3+\VWC8NS$]*\/#]O=;NMRXOGP.(S=4>0)'HV]#_.-K-$S9>*U4<<^0'^
M51YK(J>7G7-RX#K4$K81 ZMJOBDBQTSFV-8F&'5@;'ZMS:/:17S[?=09EZ\&
MW4KSHP+@M@P_JN'P(SQFNE[)O%\.-PYRB&W]^6C]:$(#@MLYN>B1SDG[LM-[
M#C%M7W6Z5PT8LG=)0'%ZH!URJDJ!7':(4MK1W\@'EZ?/@4_O[0D)*?!<>1O-
M'KD\)4JU4/P%^8HQ%;$'I,,<FWMD)_C,*'A0YGJ$W4)CPL5KIK^II985;F])
MX=HB(CN1X5J2YAVQCZK>&N5+&VF>+'(<IHVI5],!^AC:CG0ZFP&VS(IJII*/
MT\P(<NGZ.9T1M;A+<)"?KJN/9A>7.53V.22SHPX;&B[6C#Q,3.,9U#IBVJ?6
M)>W?TJU-HZ*L9F;1L=/U-K<]FWR@?9ABR]*R3\^#>*+MG$P!:X$N"C^?HTFH
M2UR':9@.Z<0 JGHNT2!BA6YOGD8L/-HW&6!FFC!W#:NY:1!E_.Q070\^;SQD
M*%*<!X":;9K4<2',"WX36<6!YX?7!YZ.;Y 'A^GB?% ?#P"6+<' 2E8M82QZ
MR[AG:-0,B"O#RV@TF<>&L6(K9#8TJ\R C@US5GMH7DO0TRO2KT2D'Z3,YF#+
M1*VTZX$5:,IB8M/6DZR5V=>F[V]'K;.];:T5EG$QZ_68P^U;%+,5<Z6N:LN]
MN(+Q,BP+DAJ/)FJ-_\/38]A96&9GAAO#$0J3S\[@L<D&\Z<+48V%6?I%160O
M(B*GALF E'W&$^2A?W5Y>TX_'M'"]L:QL,KNQ;A8E5$RA5*QD.R5GINW>[\H
M;]4(;WMTVO++6YI0J_L8S96VJS<O;AM5?7M&Q]0G$Y!(UXM*!L+(:EFMK,%V
M^(^O8ZW#E8#^<J:_)B^A\[,S<D=8/&)S8GLCQLG7"3=<W="08 =]GJNGP%,;
M81/YYF=:O%^6S$U[/#9<7$4F:(&(%,:?0,N]7Y^6K0XDAF/'M&>,2QF-*GH<
M<>_7XQ5"0]"8W1,3W\9DK]TWQI6OW5?=O.]OTOY^7BM;QD_^4L!3%0F6'&HU
MXE ;NLZ9Z_H_/A@64^*=:?G]4;5E?;]Q*I7MG6EIU9G&()"NETK%/&F#PC%P
M'$W.V TYYL;MRKKC7 ^=9R5A(8Z$3?CUDO?L.RN>@$:I8H_UMS-G>+,] <N)
M!%P,CV41!QQ!VZ2&E4"QW96ZJQ(W)^'"+SFD^;?@J1/R*\,TS[Z;'?7FRGS"
M_&HO<>9+2*Z36#E)?G$E27X$OQCC GZ)R/LX3B+:-K#)_-MPDO/M,[MHM=FE
M<=8:;2_HE41V1S! 4U$HK6P+V#C<5EY!(.C3!PM@#@=-,!QJ$C9EVL0#TPF/
M(8IA[@.!X=,JP"]+6Q W@O*V0>2W&@T\ BF?Q3YM#/-IPJ)GY_*BNOV??U54
M96_?A0%-YHP@#B&6B/QW,6,U)S@)0CFC,$N=U5Z 2@5[ ;;5JHU(OK/L*DY\
M5X%!2 /(DNP<3._NLWUV;(W/!]L[A\BB;7C,='VO7$AP!F]60IXC'^L/-A"B
MC5R^KYK4:H['UE'C[;?6<&O,U<BBUO*XZ7IQKYHIE"OY1'_VH+)5?B#O^Y&^
MY;7[AO /NMR?%D52TYC<-"K8SVPS+FS/9PYI.(X)L^B;[%'GN8W/?&[W> JA
M/&1J<OV-B\@>/E(9D(#-'.":FS5DD&ACB$Y,Z@9KT@][5!_#^0+8'W&HQ^QV
MBK')3P:J] (A*:\:TDND^$N$I!1?(//^@?3K"E3Y=4":NYJ<V+!1?^%;OKY.
M7,\8S-+UYHA!"."-&*&.PVW(]'&5K6]/29^9]AWZ6GR)'EFB4\F\)P/#Q(S%
M<"%]\9BE,SWEV>"+QQ/3HQ:S)ZXY(R[U#'<P$]W]#G8?1I<K'[:$&]I:,P$X
MX.2M6?!N8)N  ?;#*IZ!2U)N[;?89/-8^=UF:7)<)>2^L.XSP$2X[G:]DNO@
MG[GA@5CA2N3$\I?*W/@LZIL['<^,[QZ?&%MO'>S;MLFH)4XB+>57D3UKL6A)
MPE?V'RH9)MN<)^+.ID&W/SN@6GAZQ)EP=X+J"0J.&_NEF!75DJ^OJ*A=IDV@
MMP'C-32/["A[I'G:(6HAGX6&:T?DCRSN/PW.,\[QQ:MTL-VF"_FE!B)B#<_!
MOX"3,>/UN="_+'Z9?K'*-UMOKKM/GR.[ZE9Q>C7*O)@:N#TYMP1-5HHTHZ@A
M93Z9RMPZJLK%?%:V_$>;?V-M#@[3M#E#+X@G5\7Y%@P!^>5@D%3K-.QI_N]V
MH<(KVE-H=63S9#)NKT:[88H9+33']7RV4M0SZD[?/R2SEL++#O^H_&^L\D?Q
M*M]RW0GC#RK^ETJOJK9US3S=;)%C3<4OWJ/X*QC^[NI?8)GBCK:!^OL=XM7_
MI98Y(/999".RNL XTR-$@19(*9\N"YOHUQV $*^YS+#VZM$Z"T;^2VGVUEM.
MFG_X&4M+/;R[1QYHU$9$,ZGKWJ?QKVONG(J-!MW9N&^;.PE;=S:8N>\#?X@P
MS[_"ZA_J$P+  N-G6^1N9,"3A<E(B'J2U <HM9WN)&ZU^-7D*^F<J6^09XK:
M%^H7'RIH>?[WQ<?3\<ELL\P_$A!$-@0OCYNN8WP G.YZMG:S2]J4DT_4G##R
M[WPVGU=(&URBN$UEDU-6_W"ZFB_YG/8MC#0P\6SN:=K%-]5ZUVX6MV=S9-MR
M9%"(CCH?CK;FW\LS5TF[: /A#L*WY,/;IP7G_>>O7RZ;UF;G$Y?W4Z.MC-M*
MK>[%*5T8+S"Z,-__V?Q&JMX\YMQDG^U+#3@3UM5:EHX!.2/]&='$&AOTN@$G
MP\3IM:6U+\,EP&6(YA'PD RY?>>-4A#7.[@>1EVBLX%AR2/GH2I\OA2LE2V5
MX.&I4BT4R XVW-N7I?B@M2&.K#MX9!UWUX12!+6?45<AIB(I@@1=7(#&5&'1
M,00\^S+OOKAG:5=HW$F4"R3@0B"5VV31T1/%P0AG8H"FA)^00+_7KKRSV^_F
MU9,DT#';XF.16S=W?HG\3E#0QS/1K4%J57D#L<$=OK&6P%A9 !^!GC,3<E/0
M<\L6F>K$9:(53$ LLQ-QN:LA5M#E57?(:3&6.8/!4W<&#(W2:@'Z\(:S6\.%
M?F ]J*7A,@#5Q'6IB"G>K*M3KKMR@5V_-TTN[-!HFARV"MDMM..!1H' O7P!
M^ZG7N"5'F2O7O"5M8ODUKW&+HSIBNP^MOTVP-@9 !>HBTELE8N)U=V$6*6H,
MC\HB,%N]'C!,5,<GZ>KHG-&;3)^!W@*&CL X/&(Y9D#$8L,1PYQ\.B:^B(+6
M2BP?6Y -8*I_/&EQ]J!?;WEL3$K9O)J5%Q4E)QTQCBGY*(4_@4KER2=PS!S*
MO0D7=9)C@X,?L+F+[J0)N%&(02_%X2_N[I,34WJ)2--]W+QN&Y8GRM/P9K4?
M!A;,<O'NSAEI<(Z>!%N[<<U7"/GBLX(ECO3!Q$!<,+%TE&,;\LR[D8$WCD5:
M"7'0F>;?7U&3J_)XL3N6+BQW8@JW':(607^?.N99B?R1K=O\5W"9L3&9_Q#B
M)89 \]F283VF9#?<E(/QD-R>J!NN9MH8&X'PTGG\0HF\RAGO1W:7+]F?_J7;
MVF&NP;61<<O<'-.'E.=TZM'<XMYD\:N2+Y9+58SBE;*2SWECM:24]LI[NG)=
MN<F.O/'<*F)NG8%Y<XC):Q#HC8R^ <@V)YPC@_V+^/ VCO 6S(,<K>.N2D ?
MPLK0O6FR!5Z>M@NSFA]=)J%[4<@.AF]X)DW-[_L!OOBD[+_9E1'D4DH)8>(B
MW M=$+($R'\\AX58G].91$E5Y+UZ/H8=NP]*3H3$@L.@R B80U_&NVW.7''O
M= J';HX,-@ $@J.GOED(,M5F$&FSP0"-$;2@PHPLQL[+L2,(]Q:A--[^%V"=
M)2W<! =TDW8M1L/FQ_GTP%#NDF@+0;$0;D34A43^#I.D)*S-0\Z$+N\2O,-0
M?P#K-@3]/!77?T'V<! OJ]K+V&$?06\_\"<NX[=XG!>?N1-'R!R.&LHW@*"@
M9=0W/-X(S-EPE%I@6Y+8OM"L?UN+DVBY+ZW0W/T[(W<C/$<96"+\(H]#VC(^
M#F18L#56+ @F:V9(*BJ^5 "G+#:T/=RPG0K@@:X2TP8UA20!P6L+B'3A-K*O
MTCFLQZK*NJR*:BSFTV%BSMD3M8'):CG7RE225MX9ICE7R(7B0<X>&CBLJ.$9
M0+0T7\S"D@ EXC94<'2AS@,F0KI_EW;!1Z4<,*&B49;TEL0Q5A %?EAT,JP)
M"PP N;!O&9XV]<L$@94'*]+_"B84\5R:IPM\!<B[@NJ6[:7 V&M8)1'/B 8,
M!QF!L'#(+,9A^G<4;+JTJ9R9Z"L03\VDQMB5N =4&-.9F =>"L^29T)136!4
M>(&0Z'R39 JS,^#,?62P.5EHF]]P+4Q_+Z5KA\0]B98K;M-PB?A2"5-ZIY%M
MZH2:^+U6+KI&5ZP>V([<YS+$JIG?T!B'MK NPB'?4Q/QI2-,%]%$AXF;8724
M4Y5\ &.9Z:'H0\R$8]^*FVXL5"@LE7$=OWV*!%&1P7W&2ZLL:G/B:F01C>PH
M?HD,R^!LRKAF2 EP)R!4$>QW4S#='=5O'P@4RJWPM>@J'(-'SLK$4Y!ZOC41
M"9>@UL3RZ873G5@^(B)51\<NB(=BCT=M)IZH F+M,*"KT/.^,",#9B <G#VT
M%*8$C)-$:Y?T)S)(T&2L"K8F-&[2J,$HJ*I]-J>2[ELM6=5,B2G#'*6! G4=
M>#YS=?]&:D'29)HA"F(B"W,P<>"YK*:&22L R6%?C8KVQ/$I#N$!2HL.]I4;
M@NZI^RR;;@,N6'D&5R4C0!&0B^HR P(B34&POTT A? %R*@VG'DS3$7F7VD3
M.*C!1#!AZJV*<2IBD5WF(<Z@9P#V1.9!OE/)9U4)#D9_(#$*D%S<! EXC@ E
M !I&[XG"U!=1$-MHBTK"IL9@1.5YRF75;%YYL%QV/ZJ5ZI.C>CI?11&7A,EZ
ME4R.A;C^A$+50N#" K8L@#\F<.'R=#ZF/"W)\Y#<K1ZSS:=S]9BG?I31K^_H
M;R0]D9#XKU\/"+UXC@2>4_?5Z;,H;]]3VEXJ#BOBK/B<3'(J%W9V3JX-8%7V
M5O7IR7>[8/%Y[JSBE6F9)*M [JOAQ=7NUBS<L:F2SQ36*=X]'D' ]2ES$M!5
M'FZT@O"J*;5126T78P$TW'WFW3%FQ5=018M(H7(G$E8LASO+04MA*4F?UPTC
M$<NN7\>-*Y:^6>;]IBH@N%(N*86 *ZK@RN-*J'J?A&XNC$^/\WJR4ODA6=F6
M<X_(F&(DF-J*)X](<BR,X$IT0#-P'516ZX_!M,C+QG>PE*3K?LIIR'2M);[;
MF."7&T.*(K^X)^90RB,& ?%N[@F3N;DG?7!+@_HL6QK6</OKAH6O=2?$SY.1
M?KW;.KMH]*XZ)[_*-XS=6ZQHAY:KY):X;Q.#+W8#K+$;=3=N+YT^P>HWG8BE
M12P=R!OB_*H&5J&EU\421I^-J#E 2X^ 1"G1;X"U@PFN 0AP=.*-; Z*H;_2
M D+@H")G5V,^QUWOGW2B+-9AWN,40W=,+8\:;5%\N$GA82![T291G!ZBPWV?
MXV?W$YPOKF_77E P,(^Q"OG@R_9>#&Y'LY=$J9R;@_#( O=%NMIH,J8:V*/D
MG'A3:5WK]-)SGV]^AOD^]Y3D#I9%^=#?P?*D0>Q/V&];V">7<GFG!N;>]5[*
M]MOGV0P;&J7+ &T\^E0C4WVZ3UK'XI?K?.7H6NP!$9?9"31$-_9N>OI5/WE_
M][5QWNE7A[GI<?G#A7WQCK][.YUVIL;PKO.E?/O!^3!46F6U//C[78[J^8\?
M9XV;:JFDM;I_&[VNI[<J%Z7/K',W?4\]\^K<=D_>G6GY+[?=XT'_J'WG5N#Y
M_]0OFMO>:YC'LV/+,=LE[<O@Z+]Z[_/LKG?3/G%O^+E]Q,U6<7BEZ<:'8MD8
M_]UU=-LZ_9_R_K3='%+3_'I5FK8+Q>(WNWA^,5 _ NKJ^.:N6?S4O:R,7./L
MBMXY9;U\HE>\TMN;;T/7_#C\-/S>_L1O9U^_O2W=>,U/X_;7XG^GK=SWVV+C
MO'K:'9\?2HKD^K8^PY^0]IOU_P=02P,$%     @ JX*^6O0A$INW$   .$L
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
MJ(CBW:Z]\3BWMX+LPC')X#20U,PR0Z5.WK?'/D>Q&R>#;**T!-R8F8   *(
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
MOEJY!JN;)@,  -8+   1              "  0    !P<FQB+3(P,C4P-3(T
M+GAS9%!+ 0(4 Q0    ( *N"OEHD+LV,_ H  '^&   5              "
M 54#  !P<FQB+3(P,C4P-3(T7VQA8BYX;6Q02P$"% ,4    " "K@KY:UO/_
M$5,'  #,5P  %0              @ &$#@  <')L8BTR,#(U,#4R-%]P<F4N
M>&UL4$L! A0#%     @ JX*^6@- $B=3%@  VH@  !(              ( !
M"A8  '1M,C4Q-C4Q,V0Q7SAK+FAT;5!+ 0(4 Q0    ( *N"OEKT(1*;MQ
M #A+   6              "  8TL  !T;3(U,38U,3-D,5]E>#$P+3(N:'1M
64$L%!@     %  4 20$  '@]      $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>tm2516513d1_8k_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="prlb-20250524.xsd" xlink:type="simple"/>
    <context id="AsOf2025-05-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001443669</identifier>
        </entity>
        <period>
            <startDate>2025-05-24</startDate>
            <endDate>2025-05-24</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <dei:AmendmentFlag contextRef="AsOf2025-05-24" id="Fact000003">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey contextRef="AsOf2025-05-24" id="Fact000004">0001443669</dei:EntityCentralIndexKey>
    <dei:DocumentType contextRef="AsOf2025-05-24" id="Fact000009">8-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate contextRef="AsOf2025-05-24" id="Fact000010">2025-05-24</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName contextRef="AsOf2025-05-24" id="Fact000011">Proto Labs, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="AsOf2025-05-24" id="Fact000012">MN</dei:EntityIncorporationStateCountryCode>
    <dei:EntityFileNumber contextRef="AsOf2025-05-24" id="Fact000013">001-35435</dei:EntityFileNumber>
    <dei:EntityTaxIdentificationNumber contextRef="AsOf2025-05-24" id="Fact000014">41-1939628</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="AsOf2025-05-24" id="Fact000015">5540 Pioneer Creek Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="AsOf2025-05-24" id="Fact000016">Maple Plain</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="AsOf2025-05-24" id="Fact000017">MN</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="AsOf2025-05-24" id="Fact000018">55359</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="AsOf2025-05-24" id="Fact000019">763</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="AsOf2025-05-24" id="Fact000020">479-3680</dei:LocalPhoneNumber>
    <dei:WrittenCommunications contextRef="AsOf2025-05-24" id="Fact000021">false</dei:WrittenCommunications>
    <dei:SolicitingMaterial contextRef="AsOf2025-05-24" id="Fact000022">false</dei:SolicitingMaterial>
    <dei:PreCommencementTenderOffer contextRef="AsOf2025-05-24" id="Fact000023">false</dei:PreCommencementTenderOffer>
    <dei:PreCommencementIssuerTenderOffer contextRef="AsOf2025-05-24" id="Fact000024">false</dei:PreCommencementIssuerTenderOffer>
    <dei:Security12bTitle contextRef="AsOf2025-05-24" id="Fact000025">Common Stock, Par Value $0.001 Per Share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="AsOf2025-05-24" id="Fact000026">PRLB</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="AsOf2025-05-24" id="Fact000027">NYSE</dei:SecurityExchangeName>
    <dei:EntityEmergingGrowthCompany contextRef="AsOf2025-05-24" id="Fact000028">false</dei:EntityEmergingGrowthCompany>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
