<SEC-DOCUMENT>0001104659-25-053036.txt : 20250527
<SEC-HEADER>0001104659-25-053036.hdr.sgml : 20250527
<ACCEPTANCE-DATETIME>20250527165030
ACCESSION NUMBER:		0001104659-25-053036
CONFORMED SUBMISSION TYPE:	S-8
PUBLIC DOCUMENT COUNT:		15
FILED AS OF DATE:		20250527
DATE AS OF CHANGE:		20250527
EFFECTIVENESS DATE:		20250527

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:		S-8
		SEC ACT:		1933 Act
		SEC FILE NUMBER:	333-287596
		FILM NUMBER:		25989469

	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>S-8
<SEQUENCE>1
<FILENAME>tm2516136d1_s8.htm
<DESCRIPTION>FORM S-8
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

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

<P STYLE="text-align: center; margin-top: 0; margin-bottom: 0"><B>As filed with the Securities and Exchange Commission on May&nbsp;27, 2025</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: right"><B>Registration No.&nbsp;333-</B></P>

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

<!-- Field: Rule-Page --><DIV STYLE="margin-top: 0; margin-bottom: 0; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 2pt solid; border-bottom: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-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: 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">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><B>FORM&nbsp;S-8</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><B>REGISTRATION STATEMENT<BR>
<I>UNDER</I></B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><B><I>THE SECURITIES ACT OF 1933</I></B></P>

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

<P STYLE="font: 18pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><B>PROTO LABS,&nbsp;INC.</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">&nbsp;</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="font-size: 10pt; text-align: center; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Minnesota</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>41-1939628</B></FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(State or other jurisdiction of</FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(I.R.S. Employer</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">incorporation or organization)</FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Identification No.)</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; text-align: center"><B>5540 Pioneer Creek Drive</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Maple
Plain, Minnesota</B></FONT>&nbsp;<B>55359</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">(Address of principal executive offices and zip
code)</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"><B>Amended and Restated Proto Labs,&nbsp;Inc.
2022 Long-Term Incentive Plan</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">(Full Title of the Plan)</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 50%">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: center; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Copy to:</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Jason Frankman</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>W. Morgan Burns</B></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Secretary</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Mark D. Pihlstrom</B></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Proto Labs,&nbsp;Inc.</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Faegre Drinker Biddle&nbsp;&amp; Reath LLP</B></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>5540 Pioneer Creek Drive</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>2200 Wells Fargo Center</B></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Maple Plain, MN 55359</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>90 South Seventh Street</B></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>(763) 479-3680</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Minneapolis, MN 55402-3901</B></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>(612) 766-7000</B></FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: center">(Name, address and telephone number, including
area code, of agent for service)</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">Indicate by check mark whether the registrant
is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company or an emerging growth company.
See the definitions of &ldquo;large accelerated filer,&rdquo; &ldquo;accelerated filer,&rdquo; &ldquo;smaller reporting company,&rdquo;
and &ldquo;emerging growth company&rdquo; in Rule&nbsp;12b-2 of the Exchange Act.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Large
accelerated filer <FONT STYLE="font-family: Wingdings">&#120;</FONT></FONT></TD>
    <TD STYLE="font-size: 10pt; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Accelerated
filer <FONT STYLE="font-family: Wingdings">&#168;</FONT></FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="vertical-align: top; font-size: 10pt; text-align: left"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Non-accelerated filer </FONT><FONT STYLE="font-family: Times New Roman, Times, Serif"><FONT STYLE="font-family: Wingdings">&#168;</FONT></FONT></TD>
    <TD>
    <P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><FONT STYLE="font-size: 10pt">Smaller reporting
    company </FONT><FONT STYLE="font-family: Wingdings">&#168;</FONT></P>
    <P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><FONT STYLE="font-size: 10pt">Emerging growth
    company </FONT><FONT STYLE="font-family: Wingdings">&#168;</FONT></P></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"><FONT STYLE="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&nbsp;7(a)(2)(B)&nbsp;of the Securities Act. </FONT><FONT STYLE="font-family: Wingdings">&#168;</FONT></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: Rule-Page --><DIV STYLE="width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid; border-bottom: Black 2pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-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"></P>

<!-- Field: Page; Sequence: 1 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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"></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"><B>EXPLANATORY NOTE</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: justify; text-indent: 0.5in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Pursuant
to General Instruction E of Form&nbsp;S-8, this Registration Statement is filed to register an additional 296,000 shares of the common
stock, $0.001 par value (&ldquo;Common Stock&rdquo;), of Proto Labs,&nbsp;Inc. (the &ldquo;Company&rdquo;) reserved for issuance under
the Amended and Restated Proto Labs,&nbsp;Inc. 2022 Long-Term Incentive Plan (the &ldquo;Plan&rdquo;). Shares of the Company&rsquo;s
Common Stock issuable under the Plan were initially registered pursuant to a Registration Statement on Form&nbsp;S-8 filed with the Securities
and Exchange Commission (the &ldquo;Commission&rdquo;) on August&nbsp;30, 2022 (No.&#8239;</FONT><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000143774922021472/prlb20220824_s8.htm" STYLE="-sec-extract: exhibit">333-267156</A>). Such Registration Statement
is currently effective and the contents thereof are incorporated herein by reference except to the extent that such content is superseded
by the items appearing below.</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: 2 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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: center"><B>PART I</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"><B>INFORMATION REQUIRED IN THE SECTION&nbsp;10(a)&nbsp;PROSPECTUS</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: justify; text-indent: 0.5in">The information specified
in Part&nbsp;I of Form&nbsp;S-8 is not required to be filed with the Commission either as part of this Registration Statement on Form&nbsp;S-8
(this &ldquo;Registration Statement&rdquo;) or as prospectuses or prospectus supplements pursuant to Rule&nbsp;424 under the Securities
Act of 1933, as amended (the &ldquo;Securities Act&rdquo;). The information required in the Section&nbsp;10(a)&nbsp;prospectus is included
in the documents being maintained and delivered by the Company as required by Rule&nbsp;428 under the Securities Act. Such documents and
the documents incorporated by reference in this Registration Statement pursuant to Item 3 of Part&nbsp;II hereof, taken together, constitute
a prospectus that meets the requirements of Section&nbsp;10(a)&nbsp;of the Securities Act.</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"><B>PART&nbsp;II</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"><B>INFORMATION REQUIRED IN THE REGISTRATION STATEMENT</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 3.</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Incorporation of Documents by Reference.</B></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; text-align: justify; text-indent: 0.5in">The following documents filed
by the Company with the Commission are hereby incorporated by reference into this Registration Statement:</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; text-indent: 0.5in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(a)&nbsp;the
Company&rsquo;s </FONT><A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1443669/000162828025007052/prlb-20241231.htm" STYLE="-sec-extract: exhibit">Annual Report on Form&nbsp;10-K</A> for the year ended December&nbsp;31, 2024, filed on February&nbsp;21, 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; text-align: justify; text-indent: 0.5in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(b)&nbsp;those
portions of the Company&rsquo;s </FONT><A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1443669/000162828025017209/prlb-20250408.htm" STYLE="-sec-extract: exhibit">Definitive Proxy Statement on Schedule 14A</A> for its 2025 Annual Meeting of Shareholders, filed with
the Commission on April&nbsp;9, 2025, that were specifically incorporated by reference into the Company&rsquo;s Annual Report on Form&nbsp;10-K
for the year ended December&nbsp;31, 2024;</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; text-indent: 0.5in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(c)&nbsp;the
Company&rsquo;s </FONT><A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1443669/000162828025021822/prlb-20250331.htm" STYLE="-sec-extract: exhibit">Quarterly Report on Form&nbsp;10-Q</A>, filed on May&nbsp;2, 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; text-align: justify; text-indent: 0.5in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(d)&nbsp;the
Company&rsquo;s </FONT><A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1443669/000110465925051610/tm2515767d1_8k.htm" STYLE="-sec-extract: exhibit">Current Report on Form&nbsp;8-K</A>, filed on May&nbsp;21, 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; text-align: justify; text-indent: 0.5in">(e)&nbsp;all other reports
filed pursuant to Section&nbsp;13(a)&nbsp;or 15(d)&nbsp;of the Securities Exchange Act of 1934, as amended (the &ldquo;Exchange Act&rdquo;)
since the end of the fiscal year covered by the Annual Report referred to in (a)&nbsp;above (other than information deemed to have been
 &ldquo;furnished&rdquo; rather than &ldquo;filed&rdquo; in accordance with the Commission&rsquo;s rules); and</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; text-indent: 0.5in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(f)&nbsp;the
description of the Company&rsquo;s Common Stock contained in the Company&rsquo;s Registration Statement on Form&nbsp;8-A filed on </FONT><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000119312512070263/d305274d8a12b.htm" STYLE="-sec-extract: exhibit">February&nbsp;21, 2012</A>, as updated by <A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000143774923003930/ex_472326.htm" STYLE="-sec-extract: exhibit">Exhibit&nbsp;4.2</A> to the Annual Report referred to in (a)&nbsp;above, including any amendment or report filed with
the Commission for the purpose of updating such description.</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; text-indent: 0.5in">In addition, all reports and
other documents subsequently filed (but not furnished) by the Company pursuant to Sections 13(a), 13(c), 14 and 15(d)&nbsp;of the Exchange
Act, prior to the filing of a post-effective amendment to this Registration Statement that indicates that all of the shares of Common
Stock offered hereby have been sold or that deregisters all shares of the Common Stock then remaining unsold, shall be deemed to be incorporated
by reference in and a part of this Registration Statement from the date of filing of such reports and documents; except as to any document,
or portion of or exhibit to a document, that is &ldquo;furnished&rdquo; to (rather than &ldquo;filed&rdquo; with) the Commission.</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; text-indent: 0.5in">Any statement contained in
a document incorporated, or deemed to be incorporated, by reference in this Registration Statement shall be deemed to be modified or superseded
for purposes of this Registration Statement to the extent that a statement contained in this Registration Statement or in any other subsequently
filed document that also is or is deemed to be incorporated by reference in this Registration Statement modifies or supersedes such statement.
Any such statement so modified or superseded shall not be deemed, except as so modified or superseded, to constitute a part of this Registration
Statement.</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="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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 CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 4.</B></FONT></TD>
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Description of Securities.</B></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; text-align: justify">Not applicable.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 5.</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Interests of Named Experts and Counsel.</B></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; text-align: justify">Not applicable.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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; font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 6.</B></FONT></TD>
    <TD STYLE="padding: 1.5pt 1.25pt; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Indemnification of Directors and Officers.</B></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; text-align: justify; text-indent: 0.5in">The Company is subject to
Minnesota Statutes Chapter 302A, the Minnesota Business Corporation Act (the &ldquo;Corporation Act&rdquo;). Section&nbsp;302A.521 of
the Corporation Act provides in substance that, unless prohibited by its articles of incorporation or bylaws, a corporation must indemnify
a person, including an officer or director, who is made or threatened to be made a party to a proceeding by reason of the former or present
official capacity of the person against judgments, penalties, fines, including, without limitation, excise taxes assessed against the
person with respect to an employee benefit plan, settlements, and reasonable expenses, including attorneys&rsquo; fees and disbursements,
incurred by such person in connection with the proceeding, if certain criteria are met. These criteria, all of which must be met by the
person seeking indemnification, are (a)&nbsp;that such person has not been indemnified by another organization or employee benefit plan
for the same judgments, penalties, fines, including, without limitation, excise taxes assessed against the person with respect to an employee
benefit plan, settlements, and reasonable expenses, including attorneys&rsquo; fees and disbursements, incurred by the person in connection
with the proceeding with respect to the same acts or omissions; (b)&nbsp;that such person must have acted in good faith; (c)&nbsp;that
no improper personal benefit was obtained by such person and such person satisfied certain statutory conflicts of interest provisions,
if applicable; (d)&nbsp;that in the case of a criminal proceeding, such person had no reasonable cause to believe that the conduct was
unlawful; and (e)&nbsp;that, in the case of acts or omissions occurring in such person&rsquo;s performance in an official capacity, such
person must have acted in a manner such person reasonably believed was in the best interests of the corporation or, in certain limited
circumstances, not opposed to the best interests of the corporation. In addition, Section&nbsp;302A.521, subd. 3 requires payment by the
Company, upon written request, of reasonable expenses in advance of final disposition in certain instances. A decision as to required
indemnification is made by a majority of the disinterested board of directors present at a meeting at which a disinterested quorum is
present, or by a designated committee of disinterested directors, by special legal counsel, by the disinterested shareholders, or by a
court.</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-indent: 0.25in">The Company also maintains a director and officer
insurance policy to cover the Company, its directors and its officers against certain liabilities.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 7.</B></FONT></TD>
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Exemption from Registration Claimed.</B></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; text-align: justify">Not applicable.</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: 4 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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 CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 8.</B></FONT></TD>
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Exhibits.</B></FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><U>Exhibit</U></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><U>Description</U></FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000119312512054357/d199869dex32.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">4.1</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt; text-align: justify"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000119312512054357/d199869dex32.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Third
    Amended and Restated Articles of Incorporation of Proto Labs,&nbsp;Inc. (incorporated by reference to Exhibit&nbsp;3.2 to the Company&rsquo;s
    Registration Statement on Form&nbsp;S-1/A (File No.&nbsp;333-175745), filed with the Commission on February&nbsp;13, 2012)</FONT></A></TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000143774915010824/ex3-1.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">4.2</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt; text-align: justify"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000143774915010824/ex3-1.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Articles
    of Amendment to Third Amended and Restated Articles of Incorporation of Proto Labs,&nbsp;Inc. dated May&nbsp;20, 2015 (incorporated
    by reference to Exhibit&nbsp;3.1 to the Company&rsquo;s Form&nbsp;8-K, filed with the Commission on May&nbsp;21, 2015)</FONT></A></TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000143774922027471/ex_445136.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">4.3</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt; text-align: justify"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000143774922027471/ex_445136.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Third
    Amended and Restated By-Laws of Proto Labs,&nbsp;Inc, as amended through November&nbsp;15, 2022 (incorporated by reference to Exhibit&nbsp;3.2
    to the Company&rsquo;s Form&nbsp;8-K, filed with the Commission on November&nbsp;15, 2022)</FONT></A></TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="tm2516136d1_ex5-1.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">5.1</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt"><A HREF="tm2516136d1_ex5-1.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Opinion
    of Faegre Drinker Biddle&nbsp;&amp; Reath LLP</FONT></A></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt"><A HREF="tm2516136d1_ex5-1.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">23.1</FONT></A></TD>
    <TD STYLE="font-size: 10pt"><A HREF="tm2516136d1_ex5-1.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Consent of Faegre Drinker Biddle&nbsp;&amp;
    Reath LLP (included in Exhibit&nbsp;5.1)</FONT></A></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="tm2516136d1_ex23-2.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">23.2</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt"><A HREF="tm2516136d1_ex23-2.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Consent
    of Ernst&nbsp;&amp; Young LLP</FONT></A></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="#a_001"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">24.1</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt"><A HREF="#a_001"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Power
    of Attorney (included on signature page&nbsp;hereto)</FONT></A></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000110465925051610/tm2515767d1_ex10-4.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">99.1</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt"><A HREF="https://www.sec.gov/Archives/edgar/data/1443669/000110465925051610/tm2515767d1_ex10-4.htm" STYLE="-sec-extract: exhibit"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Amended
    and Restated Proto Labs,&nbsp;Inc. 2022 Long-Term Incentive Plan (incorporated by reference to Exhibit&nbsp;10.4 to the Company&rsquo;s
    Form&nbsp;8-K filed on May&nbsp;21, 2025)</FONT></A></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR>
    <TD STYLE="vertical-align: top; font-size: 10pt"><A HREF="tm2516136d1_ex-filingfees.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">107.1</FONT></A></TD>
    <TD STYLE="vertical-align: bottom; font-size: 10pt"><A HREF="tm2516136d1_ex-filingfees.htm"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Filing
    Fee Table</FONT></A></TD></TR>
</TABLE>

<P STYLE="margin: 0">&nbsp;</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="font-size: 10pt; width: 0.75in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Item 9.</B></FONT></TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>Undertakings.</B></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; text-align: justify">(a)&nbsp;The Company hereby undertakes:</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; text-indent: 0.5in">(1)&nbsp;To file, during any
period in which offers or sales are being made, a post-effective amendment to this Registration Statement:</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; text-indent: 0.5in">(i)&nbsp;To include any prospectus
required by Section&nbsp;10(a)(3)&nbsp;of the Securities Act;</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; text-indent: 1in">(ii)&nbsp;To reflect in the
prospectus any facts or events arising after the effective date of the Registration Statement (or the most recent post-effective amendment
thereof) which, individually or in the aggregate, represent a fundamental change in the information set forth in the Registration Statement.
Notwithstanding the foregoing, any increase or decrease in volume of securities offered (if the total dollar value of securities offered
would not exceed that which was registered) and any deviation from the low or high end of the estimated maximum offering range may be
reflected in the form of prospectus filed with the Commission pursuant to Rule&nbsp;424(b)&nbsp;if, in the aggregate, the changes in volume
and price represent no more than 20 percent change in the maximum aggregate offering price set forth in the &ldquo;Calculation of Registration
Fee&rdquo; table in the effective Registration Statement;</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; text-indent: 1in">(iii)&nbsp;To include any material
information with respect to the plan of distribution not previously disclosed in the Registration Statement or any material change to
such information in the Registration Statement;</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"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><I>provided,
however</I></FONT>, that paragraphs (a)(1)(i)&nbsp;and (a)(1)(ii)&nbsp;above do not apply if the Registration Statement is on Form&nbsp;S-8,
and the information required to be included in a post-effective amendment by those paragraphs is contained in reports filed with or furnished
to the Commission by the Company pursuant to Section&nbsp;13 or Section&nbsp;15(d)&nbsp;of the Exchange Act that are incorporated by reference
in this Registration Statement; and</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: 6 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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; text-indent: 0.5in">(2)&nbsp;That, for the purpose
of determining any liability under the Securities Act, each such post-effective amendment shall be deemed to be a new Registration Statement
relating to the securities offered therein, and the offering of such securities at that time shall be deemed to be the initial bona fide
offering thereof.</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; text-indent: 0.5in">(3)&nbsp;To remove from registration
by means of a post-effective amendment any of the securities being registered which remain unsold at the termination of the offering.</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">(b)&nbsp;The Company hereby undertakes that, for
purposes of determining any liability under the Securities Act, each filing of the Company&rsquo;s annual report pursuant to Section&nbsp;13(a)&nbsp;or
15(d)&nbsp;of the Exchange Act (and, where applicable, each filing of an employee benefit plan&rsquo;s annual report pursuant to Section&nbsp;15(d)&nbsp;of
the Exchange Act) that is incorporated by reference in the Registration Statement shall be deemed to be a new Registration Statement relating
to the securities offered therein, and the offering of such securities at that time shall be deemed to be the initial bona fide offering
thereof.</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">(c)&nbsp;Insofar as indemnification for liabilities
arising under the Securities Act may be permitted to directors, officers and controlling persons of the Company pursuant to the foregoing
provisions, or otherwise, the Company has been advised that in the opinion of the Securities and Exchange Commission such indemnification
is against public policy as expressed in the Securities Act and is, therefore, unenforceable. In the event that a claim for indemnification
against such liabilities (other than the payment by the Company of expenses incurred or paid by a director, officer or controlling person
of the Company in the successful defense of any action, suit or proceeding) is asserted by such director, officer or controlling person
in connection with the securities being registered, the Company will, unless in the opinion of its counsel the matter has been settled
by controlling precedent, submit to a court of appropriate jurisdiction the question whether such indemnification by it is against public
policy as expressed in the Securities Act and will be governed by the final adjudication of such issue.</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: 7 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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: center"><B>SIGNATURES</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: justify">Pursuant to the requirements of the Securities
Act of 1933, the registrant certifies that it has reasonable grounds to believe that it meets all of the requirements for filing on Form&nbsp;S-8
and has duly caused this Registration Statement to be signed on its behalf by the undersigned, thereunto duly authorized, in the City
of Maple Plain, State of Minnesota, on May&nbsp;27, 2025.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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 COLSPAN="2" STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">PROTO LABS,&nbsp;INC.</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD COLSPAN="2" STYLE="font-size: 10pt"><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; width: 3%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</FONT></TD>
    <TD STYLE="border-bottom: Black 1pt solid; font-size: 10pt; width: 47%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Suresh Krishna</FONT></TD>
    <TD STYLE="width: 50%"><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Suresh
    Krishna, President and Chief Executive 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"></P>

<!-- Field: Page; Sequence: 8 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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: center"><B><A NAME="a_001"></A>POWER OF ATTORNEY</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: justify">Each person whose signature to this Registration
Statement appears below hereby constitutes and appoints Suresh Krishna and Daniel Schumacher, and each of them, his or her true and lawful
attorney-in-fact and agent, each with full power of substitution and resubstitution, for him or her and in his or her name, place and
stead, in any and all capacities, to sign any and all amendments, including post-effective amendments, to this Registration Statement,
and to file the same, with exhibits thereto and other documents in connection therewith, with the Securities and Exchange Commission,
granting unto said attorneys-in-fact and agents and each of them, full power and authority to do and perform each and every act and thing
requisite and necessary to be done, as fully to all intents and purposes as he or she might or could do in person, hereby ratifying and
confirming all that each of said attorneys-in-fact and agents or their substitute or substitutes may lawfully do or cause to be done by
virtue hereof.</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">Pursuant to the requirements of the Securities
Act of 1933, this Registration Statement has been signed below on May&nbsp;27, 2025 by the following persons in the capacities indicated.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; text-align: justify; width: 20%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Suresh Krishna</FONT></TD>
    <TD STYLE="font-size: 10pt; width: 2%">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify; width: 78%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">President, Chief Executive Officer and Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Suresh Krishna</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Principal Executive Officer)</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Daniel Schumacher</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief Financial Officer</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Daniel Schumacher</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Principal Financial Officer and Principal Accounting Officer)</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Rainer Gawlick</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chairman of the Board</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Rainer Gawlick</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Archie C. Black</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Archie C. Black</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Sujeet Chand</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Sujeet Chand</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Moonhie Chin</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Moonhie Chin</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Stacy Greiner</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Stacy Greiner</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Donald G. Krantz</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Donald G. Krantz</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Sven A. Wehrwein</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Director</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="border-top: black 1pt solid; font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Sven A. Wehrwein</FONT></TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD>
    <TD STYLE="font-size: 10pt">&nbsp;</TD></TR>
</TABLE>

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

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

<!-- Field: Page; Sequence: 9; Options: Last -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></P></DIV>
    <!-- Field: /Page -->

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


</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-5.1
<SEQUENCE>2
<FILENAME>tm2516136d1_ex5-1.htm
<DESCRIPTION>EXHIBIT 5.1
<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;5.1</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"><IMG SRC="tm2516136d1_ex5-1img001.jpg" ALT="" STYLE="height: 89px; width: 850px">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><B>Faegre Drinker Biddle&nbsp;&amp; Reath LLP</B></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">2200 Wells Fargo Center</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">90 South Seventh Street</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">Minneapolis, Minnesota 55402</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">+1 612 766 7000 main</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">+1 612 766 1600 fax</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">May&nbsp;27, 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">Board of Directors</P>

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

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">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; text-align: justify">Ladies and Gentlemen:</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 have acted as counsel to Proto Labs,&nbsp;Inc.,
a Minnesota corporation (the &ldquo;Company&rdquo;), in connection with the preparation and filing with the Securities and Exchange Commission
(the &ldquo;Commission&rdquo;) of the Company&rsquo;s Registration Statement on Form&nbsp;S-8 (the &ldquo;Registration Statement&rdquo;)
under the Securities Act of 1933, as amended (the &ldquo;Act&rdquo;), registering the offer and sale of up to an additional 296,000 shares
of the Company&rsquo;s common stock, par value $0.001 per share (the &ldquo;Shares&rdquo;), issuable by the Company pursuant to the Amended
and Restated Proto Labs,&nbsp;Inc. 2022 Long-Term Incentive Plan (the &ldquo;Plan&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">For purposes of this opinion letter, we have examined
the Plan, the Registration Statement, the Third Amended and Restated Articles of Incorporation of the Company, as amended and currently
in effect, the Third Amended and Restated By-laws of the Company, as currently in effect, and the resolutions of the Company&rsquo;s board
of directors authorizing the issuance of the Shares. We have also examined a certificate of the Secretary of the Company dated the date
hereof (the &ldquo;Certificate&rdquo;) and originals, or copies certified or otherwise authenticated to our satisfaction, of such corporate
records and other records, agreements, instruments, certificates of public officials and documents as we have deemed necessary as a basis
for the opinions hereinafter expressed and have reviewed such matters of law as we have deemed relevant hereto. As to facts material to
this opinion letter, we have relied upon certificates, statements or representations of public officials, of officers and representatives
of the Company (including the Certificate) and of others, without any independent verification thereof.</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">In our examination, we have assumed: (i)&nbsp;the
legal capacity of all natural persons; (ii)&nbsp;the genuineness of all signatures, including electronic signatures; (iii)&nbsp;the authenticity
of all documents submitted to us as originals; (iv)&nbsp;the conformity to original documents of all documents submitted to us as certified,
conformed, photostatic or facsimile copies; (v)&nbsp;the authenticity of the originals of such latter documents; (vi)&nbsp;the truth,
accuracy and completeness of the information, representations and warranties contained in the agreements, documents, instruments, certificates
and records we have reviewed; and (vii)&nbsp;the absence of any undisclosed modifications to the agreements and instruments reviewed by
us.</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: 1 -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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">Based upon and subject to the foregoing and the
other qualifications, assumptions and limitations set forth herein, it is our opinion that all necessary corporate action on the part
of the Company has been taken to authorize the issuance and sale of the Shares to be issued in accordance with the Plan and that, when
issued and sold as contemplated in the Registration Statement and in accordance with the Plan and any applicable award agreement and,
where applicable, the consideration for the Shares specified in the Plan and any applicable award agreement has been received by the Company,
the Shares will be legally and validly issued, fully paid and nonassessable.</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 admitted to the practice of law in the
State of Minnesota and the foregoing opinions are limited to the laws of that state.</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">This opinion letter speaks only as of the date
the Registration Statement becomes effective under the Act, and we assume no obligation to revise or supplement this opinion letter thereafter.
This opinion letter is limited to the specific issues addressed herein, and no opinion may be inferred or implied beyond that expressly
stated herein.</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 hereby consent to the filing of this opinion
letter as an exhibit to the Registration Statement. In giving such consent, we do not thereby admit that we are within the category of
persons whose consent is required under Section&nbsp;7 of the Act or the rules&nbsp;and regulations of the Commission promulgated thereunder.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Very truly yours,</FONT></TD>
    <TD STYLE="width: 50%">&nbsp;</TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD STYLE="border-bottom: black 1pt solid; font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/ Faegre Drinker Biddle&nbsp;&amp; Reath LLP</FONT></TD>
    <TD>&nbsp;</TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">FAEGRE DRINKER BIDDLE&nbsp;&amp; REATH LLP</FONT></TD>
    <TD>&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: 2; Options: Last -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></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-23.2
<SEQUENCE>3
<FILENAME>tm2516136d1_ex23-2.htm
<DESCRIPTION>EXHIBIT 23.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; color: #333333"><FONT STYLE="background-color: white"><B>Exhibit&nbsp;23.2</B></FONT></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; color: #333333"><FONT STYLE="background-color: white"><B>Consent
of Independent Registered Public Accounting Firm</B></FONT></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; color: #333333"><FONT STYLE="background-color: white">We
consent to the incorporation by reference in&#8239;the  Registration Statement on Form&nbsp;S-8 pertaining to the Amended and Restated Proto
Labs,&nbsp;Inc. 2022 Long-Term Incentive Plan of our reports dated February&nbsp;21, 2025, with respect to the consolidated financial
statements of Proto Labs,&nbsp;Inc. and the effectiveness of internal control over financial reporting of Proto Labs,&nbsp;Inc. included
in its Annual Report on Form&nbsp;10-K for the year ended December&nbsp;31, 2024, filed with the Securities and Exchange Commission.</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</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="font-size: 10pt; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">/s/
    Ernst&nbsp;&amp; Young LLP</FONT></TD>
    <TD STYLE="width: 50%"><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Minneapolis,
    Minnesota</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="vertical-align: top">
    <TD STYLE="font-size: 10pt; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">May&nbsp;27,
    2025</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; text-align: justify">&nbsp;</P>

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

<!-- Field: Page; Sequence: 1; Options: Last -->
    <DIV STYLE="margin-top: 12pt; margin-bottom: 6pt; border-bottom: Black 1pt solid"><P STYLE="margin: 0pt">&nbsp;</P><P STYLE="margin: 0pt"></P></DIV>
    <!-- Field: /Page -->

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

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-FILING FEES
<SEQUENCE>4
<FILENAME>tm2516136d1_ex-filingfees.htm
<DESCRIPTION>EX-FILING FEES
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" 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/2025" xmlns:ffd="http://xbrl.sec.gov/ffd/2025">
  <head>
    <title>EX-FILING FEES</title>
  </head>
  <body>
    <div style="display: none">
      <ix:header>
        <ix:hidden>
          <ix:nonNumeric name="ffd:FormTp" contextRef="rc" id="ixv-116">S-8</ix:nonNumeric>
          <ix:nonNumeric name="ffd:SubmissnTp" contextRef="rc" id="ixv-117">S-8</ix:nonNumeric>
          <ix:nonNumeric name="ffd:FeeExhibitTp" contextRef="rc" id="ixv-118">EX-FILING FEES</ix:nonNumeric>
          <ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="rc" id="ixv-119">0001443669</ix:nonNumeric>
          <ix:nonNumeric name="dei:EntityRegistrantName" contextRef="rc" id="ixv-120">Proto Labs Inc</ix:nonNumeric>
          <ix:nonNumeric name="ffd:PrevslyPdFlg" contextRef="offrl_1" format="ixt:booleanfalse" id="ixv-121">Fees to be Paid</ix:nonNumeric>
        </ix:hidden>
        <ix:references>
          <link:schemaRef xlink:href="https://xbrl.sec.gov/ffd/2025/ffd-2025.xsd" xlink:type="simple"/>
        </ix:references>
        <ix:resources>
          <xbrli:context id="rc">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001443669</xbrli:identifier>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2025-05-23</xbrli:startDate>
              <xbrli:endDate>2025-05-23</xbrli:endDate>
            </xbrli:period>
          </xbrli:context>
          <xbrli:context id="offrl_1">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001443669</xbrli:identifier>
              <xbrli:segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                  <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
              </xbrli:segment>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2025-05-23</xbrli:startDate>
              <xbrli:endDate>2025-05-23</xbrli:endDate>
            </xbrli:period>
          </xbrli:context>
          <xbrli:unit id="USD">
            <xbrli:measure>iso4217:USD</xbrli:measure>
          </xbrli:unit>
          <xbrli:unit id="pure">
            <xbrli:measure>xbrli:pure</xbrli:measure>
          </xbrli:unit>
          <xbrli:unit id="Shares">
            <xbrli:measure>xbrli:shares</xbrli:measure>
          </xbrli:unit>
        </ix:resources>
      </ix:header>
    </div>
    <div>
      <table style="width: 99%; font-family: Arial, Helvetica, sans-serif; font-size: 20pt; text-align: center;">
        <tr>
          <td colspan="4" style="padding-bottom: .5em">
            <p>
              <b>Calculation of Filing Fee Tables</b>
            </p>
          </td>
        </tr>
        <tr>
          <td style="padding-bottom: .25em">
            <p>
              <b>
                <ix:nonNumeric name="ffd:FormTp" contextRef="rc" id="ixv-146">S-8</ix:nonNumeric>
              </b>
            </p>
          </td>
        </tr>
        <tr>
          <td style="padding-bottom: .25em">
            <p>
              <b>
                <ix:nonNumeric name="dei:EntityRegistrantName" contextRef="rc" id="ixv-147">Proto Labs Inc</ix:nonNumeric>
              </b>
            </p>
          </td>
        </tr>
      </table>
    </div>
    <div style="padding-bottom: 20px;">
      <table style="float: center; width: 100%; text-align: left;  ">
        <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px">
          <th style="vertical-align: bottom; text-align: center; width: 90%; word-wrap: break-word">
            <p style="margin: 0pt; text-align: center;">
              <b>Table 1: Newly Registered Securities</b>
            </p>
          </th>
        </tr>
      </table>
      <table style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; float: center; width: 90%; text-align: center;  border: 1px solid black; margin-left: auto; margin-right: auto;">
        <tr style="background-color:#9ADAF6">
          <th style="width: 2%;">
            <!-- BLANK -->
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Security Type</b>
            </p>
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Security Class Title </b>
            </p>
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Fee Calculation Rule</b>
            </p>
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Amount Registered</b>
            </p>
          </th>
          <th style="width: 15%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Proposed Maximum Offering Price Per Unit</b>
            </p>
          </th>
          <th style="width: 15%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Maximum Aggregate Offering Price</b>
            </p>
          </th>
          <th style="width: 3%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Fee Rate</b>
            </p>
          </th>
          <th style="width: 15%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Amount of Registration Fee</b>
            </p>
          </th>
        </tr>
        <tr style="background-color:#E7E7E2">
          <td style="text-align: center;">
		1
	</td>
          <td style="text-align: left;">
            <ix:nonNumeric name="ffd:OfferingSctyTp" contextRef="offrl_1" id="ixv-148">Equity</ix:nonNumeric>
          </td>
          <td style="text-align: left;">
            <ix:nonNumeric name="ffd:OfferingSctyTitl" contextRef="offrl_1" id="ixv-149">Common Stock, par value $0.001 per share</ix:nonNumeric>
          </td>
          <td style="text-align: center;">
            <ix:nonNumeric name="ffd:Rule457aFlg" contextRef="offrl_1" format="ixt:booleantrue" id="ixv-150">457(a)</ix:nonNumeric>
          </td>
          <td style="text-align: right;">
            <ix:nonFraction name="ffd:AmtSctiesRegd" unitRef="Shares" decimals="0" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-151">296,000</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxOfferingPricPerScty" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-152">36.99</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxAggtOfferingPric" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-153">10,949,040.00</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <ix:nonFraction name="ffd:FeeRate" unitRef="pure" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-154">0.0001531</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <span>$</span>
            <ix:nonFraction name="ffd:FeeAmt" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-155">1,676.30</ix:nonFraction>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="vertical-align: top">
            <p style="margin: 0pt; text-align: right">Total Offering Amounts:</p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top; width: 16%;">
            <p id="MaxAggtOfferingPrice" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlOfferingAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-156">10,949,040.00</ix:nonFraction>
            </p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top; border-bottom: 1px black; width: 16%;">
            <p id="TotalFeeAmt" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlFeeAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-157">1,676.30</ix:nonFraction>
            </p>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="vertical-align: top">
            <p style="margin: 0pt; text-align: right">
					Total Fee Offsets:
				</p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top">
            <p id="TotalOffsetAmt" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlOffsetAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-158">0.00</ix:nonFraction>
            </p>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="vertical-align: top">
            <p style="margin: 0pt; text-align: right">
					Net Fee Due:
				</p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top">
            <p id="NetFeeAmt" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:NetFeeAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-159">1,676.30</ix:nonFraction>
            </p>
          </td>
        </tr>
      </table>
    </div>
    <div>
      <table style="width: 100%; text-indent: 0px;">
        <tbody>
          <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; vertical-align: top;">
            <td>
              <p style="margin:0pt;text-align:left; margin-bottom: 5px;">
                <b>Offering Note</b>
              </p>
            </td>
            <td/>
          </tr>
        </tbody>
      </table>
    </div>
    <div style="padding-bottom: 20px;">
      <table style="width: 100%; text-indent: 0px;">
        <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; vertical-align: top;">
          <td style="width:10pt;">
            <p style="margin:0pt;text-align:left;">
              <sup style="vertical-align:top;line-height:120%;font-size:10px">1</sup>
            </p>
          </td>
          <td colspan="7" style="white-space: pre-line;">
            <ix:nonNumeric name="ffd:OfferingNote" escape="1" contextRef="offrl_1" id="ixv-160">(1) Pursuant to Rule 416(a) under the Securities Act of 1933, as amended (the "Securities Act"), this Registration Statement on Form S-8 shall also cover any additional shares of the common stock of Proto Labs, Inc. (the "Registrant") that become issuable in respect of the securities identified in the above table under the Amended and Restated Proto Labs, Inc. 2022 Long-Term Incentive Plan (the "Plan") by reason of any stock dividend, stock split, recapitalization or other similar transaction effected without the Registrant's receipt of consideration that results in an increase in the number of the outstanding shares of the Registrant's common stock.

(2) Represents an additional 296,000 shares of the Registrant's common stock, par value $0.001 per share, that are authorized for issuance under the Plan.

(3) Estimated solely for the purpose of calculating the registration fee in accordance with Rule 457(c) and Rule 457(h) under the Securities Act using the average of the high and low sale prices of the common stock on May 23, 2025, as reported on The New York Stock Exchange, which is within five business days prior to filing this Registration Statement on Form S-8.
</ix:nonNumeric>
          </td>
        </tr>
        <tr>
          <td style="width:10pt;"/>
          <td colspan="7">
            <hr style="width:100%;text-align:left;margin-left:0"/>
          </td>
        </tr>
      </table>
    </div>
  </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>5
<FILENAME>tm2516136d1_ex5-1img001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 tm2516136d1_ex5-1img001.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0@)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" "7!9X# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "JU]J-GIEN;B]N(X(AU9VQ5FOFWXK:M>^(OB&VAPR'R+=T@B3/!8
M@$D_B3^5 'LX^)7A R^7_;=MN^M=-;7,-Y;1W-O(LD,B[D=>A%>167P"TO[$
MGVS5;HW!4%C&JA0?8'->IZ+I<>BZ-::;%(TB6T8C5VZD"@"_1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110!RFL?$;PSH.I2:?J%^8KF/&Y
M?*8X_$"OGV[US3YOBK+K0FS8-?&42;3]W/7'6O=/$'PKT#Q)K$NIWIN//EQN
MV/@<5X+<>';*+XF2>'U+_8UO3 .?FVY]:!GO/_"WO!?_ $%#_P!^7_PKJ/\
MA(-*&BQZQ)>Q16$B;UFE.T$?C7"?\*-\*_WKO_OZ:\T^),MQ+XCL_"=B\GV*
MQ"6\*$]6)QDT >JW7QI\'VTI1+FXGQ_%% V/UQ6AHWQ4\):U.L$.I""5CA5N
M%,>3]3Q^M9>C_!CPQ9V,:7L+W=QM&]V; )]A7)_$CX3Z=I&B2ZSHF^+[/@R0
MDY&WU% 'N0(905((/((JGJ>KZ=HMH;K4KR&UA'\4C8S]/7\*\[^"OB>XUGP[
M<V-Y(9);!E"LQR2AS_+%>:>(+W4OB5\11IL$I$!F,4*D_*BCJU 'J]Q\:_!\
M$I19[F8 _>C@./UQ6OH?Q+\*Z_,L%KJ:1SMPL<ZF,GZ9X-8UA\%/"UK:K'<1
MS7,N/FD9\9/TKA_B/\*;?P[IC:WHDL@BA(\V)CDJ.Q!H ]_SD9%9.N>)M'\.
M6_G:K?Q6X/W58Y9OHHY-<1\)?&,NK>$+I=0D,DVF#+.3R4P2/Y&O*+:VU+XI
M^/Y(Y9V5'8L6/(BC'I0!Z[_PN[P?YVSS;O;G[_D''^-=/8>-_#NI:5/J-IJ<
M,D%NF^8#(=![KUKG+?X+^$H;81202ROC!D9SDGUKS7XC_#M_!, U+1[F8Z?<
M'R9D)Y7/(!]0<4 >Z:!XITCQ-:S7.E7)FBA.'.PK@_B/:JVC^./#^O7<]M87
MP>6 %I RE0H'?)%<!\!_^18UC_KJO_H)KR#3+34M3\32Z7IDKI+>2F)MIP",
M]_:@+'T1JGQ;\(:7<- VHFX=3@_9XRX_,<5T'AWQ+IOB?2CJ.FR,UN&*$NI4
M@CD]?K7":7\#/#]O:J-0FGNK@CYV#;1GVK$^)$L/P\\)6_AO0I)8A?RO+(Q;
M+!0 ",^_% '>:S\4O"6B3-!-J2S2KP4MU,F#]1Q^M9UK\:?!]S*(VN;B#/\
M%+ <?IFN,^'WPAL]7TB'6-<>1A.-T<*G''J375ZI\$_#-W:.EFLMK/CY'#9&
M?<4 >@Z?J5EJMHMU8745S W1XF#"K5?-7@;5M1\!_$-]#NI&^SM/Y$T>?E)_
MA8?I^=?2M @HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MO ?AWXYO=)\:R6?B+4IS!)F']^YQ&V>,YZ4 -MM<^+5L@LUL]18CY0SVQ/\
MX]TK/\2^#/%3Z!<^)O%%R5D0JL<+ON;D^@X KZ72:.5 Z2*R$9# Y!%>3?&W
MQ581^'ET*&=);R>0,Z*<[%'KZ9H B^ W_(LZQ_UU7_T$UR'POT^]@^*D4LUG
M<1Q_OOG>,@=#WQ7H7P.TN6Q\&RW,JE?M<VY0>Z@=?UKTP1HIR$4'U H =7'_
M !%\%KXS\/\ V>)E2]@;S(';IG'*GV-=A10(^:-(\1^-OAK(^GS:?(UL&_U<
MT9*?56'%:5]\9_%6J0-;:?I202.-NZ-&D;\.*^@98(IEQ+&CCT89J..PM(6W
M1VT2GU""@9XG\,?AQJLNMKXD\0Q/%M8R1Q2_ZQW/\1'8?6O=***!!1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 454U+4K32-/FOKV98K>)<L
MQKQG6/CU<-=M#HFDH\8.%><EBWX#&* /<:^9_BG_ ,E9?_?A_DM='8_'75K:
M9?[8T-/))Y:/<A'TSFN*\:ZY9^(OB#'J=@Y:"9H2-PP0<#(- SZF@_X]XO\
M<'\JDKB/'OC>7P/HVGW45FER9VV%78C&%!K#U3XVZ58:/:S0VWVK4)XP[0(^
M%C/N:!'J=>)2?#?Q&WQ3DUT00_86OFF#>:,[2?2F:-\:M;U+7K.TETFV2WN)
MEC) ?(!..N:W7^+5PGC]_#7]F1;%NC;^=O.< ]<4#/4Z*X?XC>/)O UO82Q6
M277VIG4AV(V[0/3ZUSNL_''3[.RMQIUE]LO98PSKNPD9/;U- CUJBO &^./B
M:)O,ET6V6+_:C<?KFN^\#_%;3?%TXLIX?L5_CB,MN5_H?Z4 <W^T#_R"-(_Z
M[M_Z#77?"3_DG6G?\"KD?V@?^01I'_7=O_0:Z[X2?\DZT[_@5 SMZ*S-?UZQ
M\.:3-J%_*$BC' [L?05P'A#XH:QXQULVEEH<26R',L[2$[%[?C0(]2KS?QQ\
M)-/\473ZA9RBSOFY<@960^X]:?XS^+>E^%KAK&VA-]?+]Y5;:B'W/]*X4_''
MQ/(?,BT:V\KVC<_KF@97_P"%/>-+;,%OJ""'I\LY48^F:VO#OP**7:W.OWHE
M0'<8(OXOJ:TO"_QPLM3NX[/6;(64CG:)D;*9]P>17H^NZO\ V5X=N]5A59A!
M#YJC/#?C0!?MK:&SMH[>WC6.&-0J(HP *EKRK1_C9IMQH-WJ&J6ZV\\3A(K>
M)MS2Y!]>G2N9N?CUJ\LQ:QT6W6$'@.6<X]R,4"/>Z*RO#>JR:WX<L-3EC6.2
MYA$C(O0$UHSSQ6T+S3.$C099CT H!NVK)*P]8\6:5HH*SSAY?^>:<FN&\4?$
M&XNF>TTEC#!T:8?>;Z>E/\)>!6U#;J.L;_+;YEB)Y?W)J.:^B/&GF,JM3V.$
M5WW>R-:W\5Z_X@E*Z-IRQ0YQYTO./Z5N6FBZM)A]1UJ=F_N080#\N:W(((K:
M%8H(UCC48"J, 5)32[G93PTMZLW)_<ON12:!+&SED$T[;$)S)*S=O<U\J3?$
M'Q6T\C)XAU$*6) %PW _.OH_XB:NNB^!M4N-VV1X6BC_ -YA@?SKY)JCMBDE
M9'MGP;USQ%X@\2W3:AJ][<VMO!EDEF9EW$\<'Z&O<Z\U^"OAXZ1X/-_,FV?4
M)/,YZA!PO]3^->E4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %-D#&-@I ;!P33J0]#0!P7A%M9L_#6HW"-%=
M.+NY$403;\_G."2?3O5M=;U'3=6TR&[U*VO%O9?)DA10#$VTL",=OE(YJ%M$
MU9/!5Y90HRW+WTTIC5L&2-IF; /;((J&72Y[R^T1K#PX-/@M+H23LZJ'(V,.
MHZCGG)]* +\&KZEKDUU+8ZC;6-K#(8H@ZAFD(ZDYZ"HX_%]Y>V%C;VT42ZI<
MSO;MGE(RAPS>X]*IVVA)HLUY;W'AE-31YFE@N$1"2#V;/2B;3+S2HM$OA!:1
MZA%.[?8H%""16ZHO^T!W[T 7[Z_\0:'J6EP3W,-W;7EP(WD\L*R<$XXH@U[5
M)-2UR>>6*'2](E(8!,M*-@;&>V,U3UW4;_4M8T!&TZ6SA6\#$3D;W.T] .P]
M?>M.VT">X@\3VETOEQZC.WEMZJ8U&?S% %,ZMKKZ0VLK?68(0RK8X'*CG;NZ
MY(JT/$%YKM];V>BND$;VJ74MPZ[BH<950/7%9$6E2PZ4+ >$+9M15/+6Y:-#
M#GH'/?WQBM+^SM0\/:XFH6MF;RVFM8X)XK<!2C(, J.F,=J *<3ZI:^/Y5OY
M(YGATEFBF5<;QO)Y'J"*9)JNK7O@>ZUC41;20NJA+5H@5_UJC<:NQVVKZEXK
MGU.>P:VM#IK6\2.1NW;B>?3.:=-HM\WPW.EB'_3-JCR\^D@;^5 #I]4UFY\4
M?V+I[0P0+:K,TQ3)3.. *KW>HWYT_P 0Z/J,B32VMN)$G1=N]&'&1Z]:U[+3
MKF+Q=<7KQX@:S2,-G^(8R*H:GHU[<:IX@ECAS'=6,<41S]YAG(_6@ TO6;F]
MM-+TW1]C&&VA-W<,,K&-@^4>K']*2WU?4]<DNIK+4;:RMH9#%$'4,TI'4G/0
M?2H=+\/WOA9+&3282]K-%&E_9%LX?: 9%)[]B.]5+30DT62[M[CPPFI*\K2P
M3HB$D-_"V>F#]: +$OB[4[C3-,:SBA6]N+PVDH/*A@<$CVKIYKJ71]!DNK^8
M3R01EG<+M#'Z5SL>A7Z0:&6M;>-X;WSYH[= JQJ>W'7'K6SK,-QJ\=]HQM'2
M"6WRMUN&TL3]W'M@?G0!FI/XHDTM-7CEA=G42"P$?5#VW==V*D.JZKK.L2Z?
MISI9QVT:M<2NFYM[?P@'BHK?4?$,6D0Z:FCR)?QJL7VEB#",<;_4\=J5;;4M
M UZZO8[-[^VOD4RB' =) .3@]0: (Y?$.IZ6-4L+XQ27EM:FYMYE7 D7W'KF
MJESK7B2PT.PUR62"5;GRP]H$ ";QP0>OUJ6YTG4]:EU75)[0V[R69M;6W8@M
MCKEO<FK^JZ5>7'A'3K**+,\1@WKGIM S0 B7^L:7KNFV^H7,5S;ZCO0!4"F)
MPNX8QU& :ZFL'6M/N;K6-!GACW1VMPSRG/W08V7^9%;U !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %4-5TBTU
MBW6*Z#_(V^-T;:R-Z@U?HH Q['PW:6=ZMX\US=W"+M1[F0-L'L  *V*** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BJEWJ5E8,JW5PD1897=WJO_PD
M6D?\_P#%^M%S-U81=G)?>:=%9G_"1:1_S_Q?K1_PD6D?\_\ %^M*Z%[:G_,O
MO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _
M\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70
M>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'
M_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/
M_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9
MG_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )
M%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\
M,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7
MZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=
M![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%
MI'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\
MQ?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5
MF?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1
M:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,O
MO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _
M\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70
M>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'
M_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/
M_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9
MG_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )
M%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\
M,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7
MZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=
M![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%
MI'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\
MQ?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5
MF?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1
M:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,O
MO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _
M\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70
M>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'
M_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/
M_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9
MG_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )
M%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\
M,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7
MZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=
M![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%
MI'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\
MQ?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5
MF?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1
M:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,O
MO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _
M\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70
M>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'
M_/\ Q?K1_P )%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/
M_%^M%T'MJ?\ ,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9
MG_"1:1_S_P 7ZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )
M%I'_ #_Q?K1=![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\
M,OO1IT5F?\)%I'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7
MZT?\)%I'_/\ Q?K1=![:G_,OO1IT5F?\)%I'_/\ Q?K1_P )%I'_ #_Q?K1=
M![:G_,OO1IT5F?\ "1:1_P _\7ZT?\)%I'_/_%^M%T'MJ?\ ,OO1IT5F?\)%
MI'_/_%^M'_"1:1_S_P 7ZT70>VI_S+[T:=%9G_"1:1_S_P 7ZT?\)%I'_/\
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
M\+_A1_8VE?\ 0-L_^_"_X4446#V</Y5]R_R#^QM*_P"@;9_]^%_PH_L;2O\
MH&V?_?A?\***+![.'\J^Y?Y!_8VE?] VS_[\+_A1_8VE?] VS_[\+_A1118/
M9P_E7W+_ "#^QM*_Z!MG_P!^%_PH_L;2O^@;9_\ ?A?\***+![.'\J^Y?Y!_
M8VE?] VS_P"_"_X4?V-I7_0-L_\ OPO^%%%%@]G#^5?<O\@_L;2O^@;9_P#?
MA?\ "C^QM*_Z!MG_ -^%_P ***+![.'\J^Y?Y!_8VE?] VS_ ._"_P"%']C:
M5_T#;/\ [\+_ (4446#V</Y5]R_R#^QM*_Z!MG_WX7_"C^QM*_Z!MG_WX7_"
MBBBP>SA_*ON7^0?V-I7_ $#;/_OPO^%']C:5_P! VS_[\+_A1118/9P_E7W+
M_(/[&TK_ *!MG_WX7_"C^QM*_P"@;9_]^%_PHHHL'LX?RK[E_D']C:5_T#;/
M_OPO^%']C:5_T#;/_OPO^%%%%@]G#^5?<O\ (/[&TK_H&V?_ 'X7_"C^QM*_
MZ!MG_P!^%_PHHHL'LX?RK[E_D']C:5_T#;/_ +\+_A1_8VE?] VS_P"_"_X4
M446#V</Y5]R_R#^QM*_Z!MG_ -^%_P */[&TK_H&V?\ WX7_  HHHL'LX?RK
M[E_D']C:5_T#;/\ [\+_ (4?V-I7_0-L_P#OPO\ A1118/9P_E7W+_(/[&TK
M_H&V?_?A?\*/[&TK_H&V?_?A?\***+![.'\J^Y?Y!_8VE?\ 0-L_^_"_X4?V
M-I7_ $#;/_OPO^%%%%@]G#^5?<O\@_L;2O\ H&V?_?A?\*/[&TK_ *!MG_WX
M7_"BBBP>SA_*ON7^0?V-I7_0-L_^_"_X4?V-I7_0-L_^_"_X4446#V</Y5]R
M_P @_L;2O^@;9_\ ?A?\*/[&TK_H&V?_ 'X7_"BBBP>SA_*ON7^0?V-I7_0-
ML_\ OPO^%']C:5_T#;/_ +\+_A1118/9P_E7W+_(/[&TK_H&V?\ WX7_  H_
ML;2O^@;9_P#?A?\ "BBBP>SA_*ON7^0?V-I7_0-L_P#OPO\ A1_8VE?] VS_
M ._"_P"%%%%@]G#^5?<O\@_L;2O^@;9_]^%_PH_L;2O^@;9_]^%_PHHHL'LX
M?RK[E_D']C:5_P! VS_[\+_A1_8VE?\ 0-L_^_"_X4446#V</Y5]R_R#^QM*
M_P"@;9_]^%_PH_L;2O\ H&V?_?A?\***+![.'\J^Y?Y!_8VE?] VS_[\+_A1
M_8VE?] VS_[\+_A1118/9P_E7W+_ "#^QM*_Z!MG_P!^%_PH_L;2O^@;9_\
M?A?\***+![.'\J^Y?Y!_8VE?] VS_P"_"_X4?V-I7_0-L_\ OPO^%%%%@]G#
M^5?<O\@_L;2O^@;9_P#?A?\ "C^QM*_Z!MG_ -^%_P ***+![.'\J^Y?Y!_8
MVE?] VS_ ._"_P"%']C:5_T#;/\ [\+_ (4446#V</Y5]R_R#^QM*_Z!MG_W
MX7_"C^QM*_Z!MG_WX7_"BBBP>SA_*ON7^0?V-I7_ $#;/_OPO^%']C:5_P!
MVS_[\+_A1118/9P_E7W+_(/[&TK_ *!MG_WX7_"C^QM*_P"@;9_]^%_PHHHL
M'LX?RK[E_D']C:5_T#;/_OPO^%']C:5_T#;/_OPO^%%%%@]G#^5?<O\ (/[&
MTK_H&V?_ 'X7_"C^QM*_Z!MG_P!^%_PHHHL'LX?RK[E_D']C:5_T#;/_ +\+
M_A1_8VE?] VS_P"_"_X4446#V</Y5]R_R#^QM*_Z!MG_ -^%_P */[&TK_H&
MV?\ WX7_  HHHL'LX?RK[E_D']C:5_T#;/\ [\+_ (4?V-I7_0-L_P#OPO\
MA1118/9P_E7W+_(/[&TK_H&V?_?A?\*/[&TK_H&V?_?A?\***+![.'\J^Y?Y
M!_8VE?\ 0-L_^_"_X4?V-I7_ $#;/_OPO^%%%%@]G#^5?<O\@_L;2O\ H&V?
M_?A?\*/[&TK_ *!MG_WX7_"BBBP>SA_*ON7^0?V-I7_0-L_^_"_X4?V-I7_0
M-L_^_"_X4446#V</Y5]R_P @_L;2O^@;9_\ ?A?\*/[&TK_H&V?_ 'X7_"BB
MBP>SA_*ON7^0?V-I7_0-L_\ OPO^%']C:5_T#;/_ +\+_A1118/9P_E7W+_(
M/[&TK_H&V?\ WX7_  H_L;2O^@;9_P#?A?\ "BBBP>SA_*ON7^0?V-I7_0-L
M_P#OPO\ A1_8VE?] VS_ ._"_P"%%%%@]G#^5?<O\@_L;2O^@;9_]^%_PH_L
M;2O^@;9_]^%_PHHHL'LX?RK[E_D']C:5_P! VS_[\+_A1_8VE?\ 0-L_^_"_
MX4446#V</Y5]R_R#^QM*_P"@;9_]^%_PH_L;2O\ H&V?_?A?\***+![.'\J^
MY?Y!_8VE?] VS_[\+_A1_8VE?] VS_[\+_A1118/9P_E7W+_ "#^QM*_Z!MG
M_P!^%_PH_L;2O^@;9_\ ?A?\***+![.'\J^Y?Y!_8VE?] VS_P"_"_X4?V-I
M7_0-L_\ OPO^%%%%@]G#^5?<O\@_L;2O^@;9_P#?A?\ "C^QM*_Z!MG_ -^%
M_P ***+![.'\J^Y?Y!_8VE?] VS_ ._"_P"%']C:5_T#;/\ [\+_ (4446#V
M</Y5]R_R#^QM*_Z!MG_WX7_"C^QM*_Z!MG_WX7_"BBBP>SA_*ON7^0?V-I7_
M $#;/_OPO^%']C:5_P! VS_[\+_A1118/9P_E7W+_(/[&TK_ *!MG_WX7_"C
M^QM*_P"@;9_]^%_PHHHL'LX?RK[E_D']C:5_T#;/_OPO^%6X88K>)8H(DBC7
.HB*% _ 444%*$8[(_]D!

end
</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>Submission<br></strong></div></th>
<th class="th"><div>May 23, 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_ffd_SubmissionLineItems', window );"><strong>Submission [Line Items]</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_EntityCentralIndexKey', window );">Central Index Key</a></td>
<td class="text">0001443669<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_EntityRegistrantName', window );">Registrant Name</a></td>
<td class="text">Proto Labs Inc<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_ffd_FormTp', window );">Form Type</a></td>
<td class="text">S-8<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_ffd_SubmissnTp', window );">Submission Type</a></td>
<td class="text">S-8<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_ffd_FeeExhibitTp', window );">Fee Exhibit Type</a></td>
<td class="text">EX-FILING FEES<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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_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_ffd_FeeExhibitTp">
<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 );">- References</a><div><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;">ffd_FeeExhibitTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:feeExhibitTypeItemType</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_ffd_FormTp">
<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 );">- References</a><div><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;">ffd_FormTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd: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_ffd_SubmissionLineItems">
<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 );">- References</a><div><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;">ffd_SubmissionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</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_ffd_SubmissnTp">
<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 );">- References</a><div><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;">ffd_SubmissnTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd: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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<FILENAME>R2.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>Offerings - Offering: 1<br></strong></div></th>
<th class="th">
<div>May 23, 2025 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingTable', window );"><strong>Offering:</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_ffd_PrevslyPdFlg', window );">Fee Previously Paid</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_ffd_Rule457aFlg', window );">Rule 457(a)</a></td>
<td class="text">true<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_ffd_OfferingSctyTp', window );">Security Type</a></td>
<td class="text">Equity<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_ffd_OfferingSctyTitl', window );">Security Class Title</a></td>
<td class="text">Common Stock, par value $0.001 per share<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_ffd_AmtSctiesRegd', window );">Amount Registered | shares</a></td>
<td class="nump">296,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_MaxOfferingPricPerScty', window );">Proposed Maximum Offering Price per Unit</a></td>
<td class="nump">36.99<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_ffd_MaxAggtOfferingPric', window );">Maximum Aggregate Offering Price</a></td>
<td class="nump">$ 10,949,040.00<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeeRate', window );">Fee Rate</a></td>
<td class="nump">0.01531%<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_ffd_FeeAmt', window );">Amount of Registration Fee</a></td>
<td class="nump">$ 1,676.30<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_ffd_OfferingNote', window );">Offering Note</a></td>
<td class="text">(1) Pursuant to Rule 416(a) under the Securities Act of 1933, as amended (the "Securities Act"), this Registration Statement on Form S-8 shall also cover any additional shares of the common stock of Proto Labs, Inc. (the "Registrant") that become issuable in respect of the securities identified in the above table under the Amended and Restated Proto Labs, Inc. 2022 Long-Term Incentive Plan (the "Plan") by reason of any stock dividend, stock split, recapitalization or other similar transaction effected without the Registrant's receipt of consideration that results in an increase in the number of the outstanding shares of the Registrant's common stock.

(2) Represents an additional 296,000 shares of the Registrant's common stock, par value $0.001 per share, that are authorized for issuance under the Plan.

(3) Estimated solely for the purpose of calculating the registration fee in accordance with Rule 457(c) and Rule 457(h) under the Securities Act using the average of the high and low sale prices of the common stock on May 23, 2025, as reported on The New York Stock Exchange, which is within five business days prior to filing this Registration Statement on Form S-8.
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_AmtSctiesRegd">
<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 amount of securities being 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 Securities Act<br> -Number 230<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;">ffd_AmtSctiesRegd</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegativeDecimal2ItemType</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_ffd_FeeAmt">
<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>Total amount of registration fee (amount due after offsets).</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></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;">ffd_FeeAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</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_ffd_FeeRate">
<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 rate per dollar of fees that public companies and other issuers pay to register their securities with the Commission.</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></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;">ffd_FeeRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_MaxAggtOfferingPric">
<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 maximum aggregate offering price for the offering that is being 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 Securities Act<br> -Number 230<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;">ffd_MaxAggtOfferingPric</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative100TMonetary2ItemType</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_ffd_MaxOfferingPricPerScty">
<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 maximum offering price per share/unit being 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 Securities Act<br> -Number 230<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;">ffd_MaxOfferingPricPerScty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegativeDecimal4lItemType</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_ffd_OfferingNote">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<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;">ffd_OfferingNote</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingSctyTitl">
<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 title of the class of securities being registered (for each class being 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 Securities Act<br> -Number 230<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;">ffd_OfferingSctyTitl</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd: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_ffd_OfferingSctyTp">
<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>Type of securities: "Asset-backed Securities", "ADRs/ADSs", "Debt", "Debt Convertible into Equity", "Equity", "Face Amount Certificates", "Limited Partnership Interests", "Mortgage Backed Securities", "Non-Convertible Debt", "Unallocated (Universal) Shelf", "Exchange Traded Vehicle Securities", "Other"</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></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;">ffd_OfferingSctyTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:securityTypeItemType</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_ffd_OfferingTable">
<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 );">- References</a><div><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;">ffd_OfferingTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</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_ffd_PrevslyPdFlg">
<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 );">- References</a><div><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;">ffd_PrevslyPdFlg</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</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_ffd_Rule457aFlg">
<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>Checkbox indicating whether filer is using Rule 457(a) to calculate the registration fee due.</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 457<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;">ffd_Rule457aFlg</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</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_ffd_OfferingAxis=1">
<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 );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingAxis=1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<FILENAME>R3.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>Fees Summary<br></strong></div></th>
<th class="th">
<div>May 23, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeesSummaryLineItems', window );"><strong>Fees Summary [Line Items]</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_ffd_TtlOfferingAmt', window );">Total Offering</a></td>
<td class="nump">$ 10,949,040.00<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_TtlFeeAmt', window );">Total Fee Amount</a></td>
<td class="nump">1,676.30<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_TtlOffsetAmt', window );">Total Offset Amount</a></td>
<td class="nump">0.00<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_NetFeeAmt', window );">Net Fee</a></td>
<td class="nump">$ 1,676.30<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FeesSummaryLineItems">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<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;">ffd_FeesSummaryLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</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_ffd_NetFeeAmt">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<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;">ffd_NetFeeAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_TtlFeeAmt">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<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;">ffd_TtlFeeAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</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_ffd_TtlOfferingAmt">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<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;">ffd_TtlOfferingAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</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_ffd_TtlOffsetAmt">
<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 );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<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;">ffd_TtlOffsetAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</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>10
<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>11
<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>13
<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>2</ContextCount>
  <ElementCount>19</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>1</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>3</UnitCount>
  <MyReports>
    <Report instance="tm2516136d1_ex-filingfees.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>995210 - Document - Submission</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ffd/role/document/submissionTable</Role>
      <ShortName>Submission</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tm2516136d1_ex-filingfees.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>995211 - Document - Offerings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ffd/role/document/feesOfferingTable</Role>
      <ShortName>Offerings</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tm2516136d1_ex-filingfees.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>995215 - Document - Fees Summary</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ffd/role/document/feesSummaryTable</Role>
      <ShortName>Fees Summary</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="EX-FILING FEES" original="tm2516136d1_ex-filingfees.htm">tm2516136d1_ex-filingfees.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="3">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="18">http://xbrl.sec.gov/ffd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>15
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tm2516136d1_ex-filingfees.htm": {
   "dts": {
    "inline": {
     "local": [
      "tm2516136d1_ex-filingfees.htm"
     ]
    },
    "schema": {
     "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/lrr/arcrole/deprecated-2009-12-16.xsd",
      "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd",
      "https://xbrl.sec.gov/dei/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/ffd/2025/ffd-2025.xsd"
     ]
    }
   },
   "keyStandard": 19,
   "keyCustom": 0,
   "axisStandard": 1,
   "axisCustom": 0,
   "memberStandard": 1,
   "memberCustom": 0,
   "hidden": {
    "total": 6,
    "http://xbrl.sec.gov/ffd/2025": 4,
    "http://xbrl.sec.gov/dei/2025": 2
   },
   "contextCount": 2,
   "entityCount": 1,
   "segmentCount": 1,
   "elementCount": 107,
   "unitCount": 3,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/ffd/2025": 18,
    "http://xbrl.sec.gov/dei/2025": 3
   },
   "report": {
    "R1": {
     "role": "http://xbrl.sec.gov/ffd/role/document/submissionTable",
     "longName": "995210 - Document - Submission",
     "shortName": "Submission",
     "isDefault": "true",
     "groupType": "Fee_Exhibit",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": null,
     "uniqueAnchor": null
    },
    "R2": {
     "role": "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
     "longName": "995211 - Document - Offerings",
     "shortName": "Offerings",
     "isDefault": "false",
     "groupType": "Fee_Exhibit",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "offrl_1",
      "name": "ffd:Rule457aFlg",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tm2516136d1_ex-filingfees.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "offrl_1",
      "name": "ffd:Rule457aFlg",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tm2516136d1_ex-filingfees.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable",
     "longName": "995215 - Document - Fees Summary",
     "shortName": "Fees Summary",
     "isDefault": "false",
     "groupType": "Fee_Exhibit",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "3",
     "firstAnchor": {
      "contextRef": "rc",
      "name": "ffd:TtlOfferingAmt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tm2516136d1_ex-filingfees.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "rc",
      "name": "ffd:TtlOfferingAmt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tm2516136d1_ex-filingfees.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "ffd_AggtRedRpPricFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "AggtRedRpPricFsclYr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Redeemed or Repurchased Price, Fiscal Year",
        "terseLabel": "Aggregate Redeemed or Repurchased, FY"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AggtRedRpPricPrrFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "AggtRedRpPricPrrFsclYr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Redeemed or Repurchased Price, Prior Fiscal Year",
        "terseLabel": "Aggregate Redeemed or Repurchased, Prior FY"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AggtSalesPricFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "AggtSalesPricFsclYr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Sales Price, Fiscal Year",
        "terseLabel": "Aggregate Sales Price"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AmtRedCdts": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "AmtRedCdts",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amount of Redemption Credits",
        "terseLabel": "Redemption Credits"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AmtSctiesRcvd": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "AmtSctiesRcvd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amount of Securities Received",
        "terseLabel": "Amount of Securities Received",
        "documentation": "Amount of securities to be received by the registrant (or cancelled upon issuance of securities to be registered on the form)"
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ffd_AmtSctiesRegd": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "AmtSctiesRegd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amount of Securities Registered",
        "terseLabel": "Amount Registered",
        "documentation": "The amount of securities being registered."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CeasedOprsDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CeasedOprsDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Ceased Operations Date",
        "terseLabel": "Ceased Operations Date"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_CfwdFormTp": {
     "xbrltype": "formTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CfwdFormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward Form Type",
        "terseLabel": "Carry Forward Form Type",
        "documentation": "The Form Type of the prior shelf registration statement from which unsold securities are carried forward under 415(a)(6). This should be an EDGAR submission type (S-3, S-3/A, S-3ASR, etc.), which means there is a fixed set of possible responses. Note that while the XBRL response should be an EDGAR submission type, the human-readable Ex. 107 could include a simpler label (e.g., \"Form S-3\" in the human-readable and \"S-3ASR\" in the XBRL)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CfwdPrevslyPdFee": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CfwdPrevslyPdFee",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward Previously Paid Fee",
        "terseLabel": "Filing Fee Previously Paid in Connection with Unsold Securities to be Carried Forward",
        "documentation": "The fee previously paid in connection with the securities being brought forward from the prior shelf registration statement on which unsold securities are carried forward under 415(a)(6)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CfwdPrrFctvDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CfwdPrrFctvDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward Prior Effective Date",
        "terseLabel": "Carry Forward Initial Effective Date",
        "documentation": "The initial effective date of the prior shelf registration statement from which unsold securities are carried forward under 415(a)(6)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CfwdPrrFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CfwdPrrFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward File Number",
        "terseLabel": "Carry Forward File Number",
        "documentation": "The EDGAR File Number of the prior shelf registration statement from which unsold securities are carried forward under 415(a)(6). If the prior registration statement has a Securities Act File Number and an Investment Company Act File Number, the Securities Act File Number should be used."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CmbndPrspctsItemAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CmbndPrspctsItemAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus Item [Axis]",
        "terseLabel": "Combined Prospectus",
        "documentation": "A sequence number (1, 2, 3...) used to distinguish different references to earlier prospectuses on a single fee bearing submission."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CmbndPrspctsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CmbndPrspctsLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus [Line Items]",
        "terseLabel": "Combined Prospectus:"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CmbndPrspctsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CmbndPrspctsTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus [Table]",
        "terseLabel": "Combined Prospectus Table"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CombinedProspectusTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CombinedProspectusTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus Table [N/A]",
        "terseLabel": "Combined Prospectus Table N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_CshPdByRegistrantInTx": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CshPdByRegistrantInTx",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Paid by Registrant in Transaction",
        "terseLabel": "Cash Consideration Paid",
        "documentation": "Amount of cash consideration paid by registrant in connection with the exchange or other transaction being registered (in a 457(f) calculation)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "ffd_CshRcvdByRegistrantInTx": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "CshRcvdByRegistrantInTx",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Received by Registrant in Transaction",
        "terseLabel": "Cash Consideration Received",
        "documentation": "Amount of cash consideration received by registrant in connection with the exchange or other transaction being registered (in a 457(f) calculation)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "terseLabel": "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": [
      "r0"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "terseLabel": "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": [
      "r0"
     ]
    },
    "ffd_FeeAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Amount",
        "terseLabel": "Amount of Registration Fee",
        "documentation": "Total amount of registration fee (amount due after offsets)."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeExhibitTp": {
     "xbrltype": "feeExhibitTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeeExhibitTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Exhibit Type",
        "terseLabel": "Fee Exhibit Type"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_FeeIntrstAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeeIntrstAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Interest Amount",
        "terseLabel": "Interest Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeeNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Note",
        "terseLabel": "Fee Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeNoteMaxAggtOfferingPric": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeeNoteMaxAggtOfferingPric",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Note Maximum Aggregate Offering Price",
        "terseLabel": "Fee Note MAOP"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeeRate",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Rate",
        "terseLabel": "Fee Rate",
        "documentation": "The rate per dollar of fees that public companies and other issuers pay to register their securities with the Commission."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeesOthrRuleFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeesOthrRuleFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fees, Other Rule [Flag]",
        "terseLabel": "Other Rule",
        "documentation": "Checkbox indicating whether filer is using a rule other than 457(a), 457(o), or 457(f) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeesSummaryLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FeesSummaryLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fees Summary [Line Items]",
        "terseLabel": "Fees Summary:"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FnlPrspctsFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FnlPrspctsFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Final Prospectus [Flag]",
        "terseLabel": "Final Prospectus"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FormTp": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "FormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Form Type",
        "terseLabel": "Form Type"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_GnlInstrIIhiFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "GnlInstrIIhiFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "General Instruction II.H,I [Flag]",
        "terseLabel": "General Instruction II.H,I"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrCity": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "IssrBizAdrCity",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, City",
        "terseLabel": "City"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrStatOrCtryCd": {
     "xbrltype": "stateOrCountryCodeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "IssrBizAdrStatOrCtryCd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, State or Country Code",
        "terseLabel": "State or Country Code"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrStrt1": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "IssrBizAdrStrt1",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, Street 1",
        "terseLabel": "Street 1"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrStrt2": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "IssrBizAdrStrt2",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, Street 2",
        "terseLabel": "Street 2"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrZipCd": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "IssrBizAdrZipCd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, Zip Code",
        "terseLabel": "Zip Code"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrNm": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "IssrNm",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Name",
        "terseLabel": "Issuer Name"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_MaxAggtOfferingPric": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "MaxAggtOfferingPric",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum Aggregate Offering Price",
        "terseLabel": "Maximum Aggregate Offering Price",
        "documentation": "The maximum aggregate offering price for the offering that is being registered."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_MaxOfferingPricPerScty": {
     "xbrltype": "nonNegativeDecimal4lItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "MaxOfferingPricPerScty",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum Offering Price per Security",
        "terseLabel": "Proposed Maximum Offering Price per Unit",
        "documentation": "The maximum offering price per share/unit being registered."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NetFeeAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "NetFeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Fee Amount",
        "terseLabel": "Net Fee"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NetSalesAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "NetSalesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Sales Amount",
        "terseLabel": "Net Sales"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NrrtvDsclsr": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "NrrtvDsclsr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Narrative Disclosure",
        "terseLabel": "Narrative Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NrrtvMaxAggtAmt": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "NrrtvMaxAggtAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Narrative Disclosure, Maximum Aggregate Offering Amount",
        "terseLabel": "Narrative - Max Aggregate Offering Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NrrtvMaxAggtOfferingPric": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "NrrtvMaxAggtOfferingPric",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Narrative Disclosure, Maximum Aggregate Offering Price",
        "terseLabel": "Narrative - Max Aggregate Offering Price"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Axis]",
        "terseLabel": "Offering",
        "documentation": "A sequence number (1, 2, 3...) used to distinguish different security offerings on a single fee bearing submission."
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Line Items]",
        "terseLabel": "Offering:"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Note",
        "terseLabel": "Offering Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingSctyTitl": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingSctyTitl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Security Title",
        "terseLabel": "Security Class Title",
        "documentation": "The title of the class of securities being registered (for each class being registered)."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingSctyTp": {
     "xbrltype": "securityTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingSctyTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Security Type",
        "terseLabel": "Security Type",
        "documentation": "Type of securities: \"Asset-backed Securities\", \"ADRs/ADSs\", \"Debt\", \"Debt Convertible into Equity\", \"Equity\", \"Face Amount Certificates\", \"Limited Partnership Interests\", \"Mortgage Backed Securities\", \"Non-Convertible Debt\", \"Unallocated (Universal) Shelf\", \"Exchange Traded Vehicle Securities\", \"Other\""
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Table]",
        "terseLabel": "Offering:"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OfferingTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Table [N/A]",
        "terseLabel": "Offering Table N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OffsetAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset [Axis]",
        "terseLabel": "Offset",
        "documentation": "A sequence number (1, 2, 3...) used to distinguish different offsets as applied to a fee bearing submission."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetClmInitlFilgDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetClmInitlFilgDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Claim Initial Filing Date",
        "terseLabel": "Initial Filing Date",
        "documentation": "The initial filing date of the earlier registration statement with which the earlier (offsetting) fee was paid for a claimed offset. If the offset fee was paid with an amendment, do not provide the amendment date under this element; instead, provide the date of the initial filing (i.e. the \"parent\" filing) ."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetClmdAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetClmdAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Claimed Amount",
        "terseLabel": "Fee Offset Claimed",
        "documentation": "The amount of offsetting fees being claimed."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetClmdInd": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetClmdInd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Claimed Indicator",
        "terseLabel": "Offset Claimed"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetExpltnForClmdAmt": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetExpltnForClmdAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Explanation for Claimed Amount",
        "terseLabel": "Explanation for Claimed Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetLineItems",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Offset:",
        "label": "Offset [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Note",
        "terseLabel": "Offset Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetPrrFeeAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrFeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Fee Amount",
        "terseLabel": "Fee Paid with Fee Offset Source",
        "documentation": "The fee previously paid from which an offset is being derived."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior File Number",
        "terseLabel": "File Number",
        "documentation": "The EDGAR File Number of the earlier registration statement with which the earlier (offsetting) fee was paid. If the offset filing for the offset has a Securities Act File Number and an Investment Company Act File Number, the Securities Act File Number should be used."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrFilerNm": {
     "xbrltype": "filerNameItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrFilerNm",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Filer Name",
        "terseLabel": "Registrant or Filer Name",
        "documentation": "The name of the registrant that filed the earlier registration statement with which the earlier (offsetting) fee was paid."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrFormTp": {
     "xbrltype": "formTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrFormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Form Type",
        "terseLabel": "Form or Filing Type",
        "documentation": "The Form Type of the offset filing."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrNbOfUnsoldScties": {
     "xbrltype": "nonNegativeIntegerItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrNbOfUnsoldScties",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Unsold Number of Securities",
        "terseLabel": "Unsold Securities Associated with Fee Offset Claimed",
        "documentation": "The number of unsold securities registered on the prior registration statement that are associated with the claimed offset."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrSctyTitl": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrSctyTitl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Security Title",
        "terseLabel": "Security Title Associated with Fee Offset Claimed",
        "documentation": "The title of the class of securities from which offset fees were derived."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrSctyTp": {
     "xbrltype": "securityTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrSctyTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Security Type",
        "terseLabel": "Security Type Associated with Fee Offset Claimed",
        "documentation": "Type of securities: \"Asset-backed Securities\", \"ADRs/ADSs\", \"Debt\", \"Debt Convertible into Equity\", \"Equity\", \"Face Amount Certificates\", \"Limited Partnership Interests\", \"Mortgage Backed Securities\", \"Non-Convertible Debt\", \"Unallocated (Universal) Shelf\", \"Exchange Traded Vehicle Securities\", \"Other\""
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrUnsoldOfferingAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetPrrUnsoldOfferingAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Unsold Offering Amount",
        "terseLabel": "Unsold Aggregate Offering Amount Associated with Fee Offset Claimed",
        "documentation": "The aggregate offering amount of unsold securities registered on the prior registration statement that are associated with the claimed offset."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetSrcFilgDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetSrcFilgDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Source Filing Date",
        "terseLabel": "Filing Date",
        "documentation": "The filing date of the earlier registration statement with which the earlier (offsetting) fee was paid in an offset."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Offset Payment:",
        "label": "Offset [Table]"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "OffsetTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Table [N/A]",
        "terseLabel": "Offset Table N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_PrevslyPdFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "PrevslyPdFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Previously Paid [Flag]",
        "terseLabel": "Fee Previously Paid"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_RegnFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "RegnFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Registration File Number",
        "terseLabel": "Registration File Number"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_RptgFsclYrEndDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "RptgFsclYrEndDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reporting Fiscal Year End Date",
        "terseLabel": "Reporting FY End Date"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_Rule011Flg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule011Flg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 0-11 [Flag]",
        "terseLabel": "Rule 0-11"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_Rule011a2OffsetFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule011a2OffsetFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 0-11(a)(2) Offset",
        "label": "Rule 0-11(a)(2) Offset [Flag]"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_Rule415a6Flg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule415a6Flg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 415(a)(6) [Flag]",
        "terseLabel": "Rule 415(a)(6)",
        "documentation": "Checkbox indicating whether filer is claiming a 415(a)(6) carryforward."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_Rule429AggtOfferingAmt": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429AggtOfferingAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Aggregate Offering Amount",
        "terseLabel": "Maximum Aggregate Offering Price of Securities Previously Registered",
        "documentation": "The maximum aggregate offering amount of unsold securities registered on the prior registration statement that are carried forward under Rule 429. Only applicable if 457(o) was used in the fee calculation for the prior registration statement."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429CmbndPrspctsFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429CmbndPrspctsFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Combined Prospectus [Flag]",
        "terseLabel": "Rule 429",
        "documentation": "Checkbox indicating whether filer is using a combined prospectus under Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429EarlierFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429EarlierFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Earlier File Number",
        "terseLabel": "File Number",
        "documentation": "The Securities Act File Number of the earlier effective registration statement(s) from which securities may be offered and sold using the combined prospectus pursuant to Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429EarlierFormTp": {
     "xbrltype": "formTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429EarlierFormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Earlier Form Type",
        "terseLabel": "Form Type",
        "documentation": "The Form Type of the earlier registration statement from which unsold securities are carried forward under Rule 429. This should be an EDGAR submission type (S-3, S-3/A, S-3ASR, etc.), which means there is a fixed set of possible responses. Note that while the XBRL response should be an EDGAR submission type, the human-readable Ex. 107 could include a simpler label (e.g., \"Form S-3\" in the human-readable and \"S-3ASR\" in the XBRL)."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429InitlFctvDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429InitlFctvDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Initial Effective Date",
        "terseLabel": "Initial Effective Date",
        "documentation": "The filing date of the earlier registration statement from which unsold securities are carried forward under Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429NbOfUnsoldScties": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429NbOfUnsoldScties",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Number Of Unsold Securities",
        "terseLabel": "Amount of Securities Previously Registered",
        "documentation": "The number of securities registered on the prior registration statement that are carried forward under Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429PrspctsNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429PrspctsNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Prospectus Note",
        "terseLabel": "Combined Prospectus Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Rule429SctyTitl": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429SctyTitl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Security Title",
        "terseLabel": "Security Class Title"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Rule429SctyTp": {
     "xbrltype": "securityTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule429SctyTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Security Type",
        "terseLabel": "Security Type"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Rule457aFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457aFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(a) [Flag]",
        "terseLabel": "Rule 457(a)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(a) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "ffd_Rule457bOffsetFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457bOffsetFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(b) Offset [Flag]",
        "terseLabel": "Rule 457(b) Offset",
        "documentation": "Checkbox indicating whether filer is claiming an offset under Rule 457(b) or 0-11(a)(2)."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "ffd_Rule457fFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457fFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(f) [Flag]",
        "terseLabel": "Rule 457(f)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(f) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ffd_Rule457oFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457oFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(o) [Flag]",
        "terseLabel": "Rule 457(o)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(o) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "ffd_Rule457pOffsetFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457pOffsetFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(p) Offset [Flag]",
        "terseLabel": "Rule 457(p) Offset",
        "documentation": "Checkbox indicating whether filer is claiming an offset under Rule 457(p)."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "ffd_Rule457rFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457rFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(r) [Flag]",
        "terseLabel": "Rule 457(r)"
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "ffd_Rule457sFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457sFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(s) Flag",
        "terseLabel": "Rule 457(s)"
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "ffd_Rule457uFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Rule457uFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(u) [Flag]",
        "terseLabel": "Rule 457(u)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(u) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "ffd_Scties424iAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Scties424iAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities, 424I [Axis]",
        "terseLabel": "Securities, 424I"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Scties424iLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Scties424iLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities, 424I [Line Items]",
        "terseLabel": "Securities, 424I:"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Scties424iTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Scties424iTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities, 424I [Table]",
        "terseLabel": "Securities, 424I Table"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Securities424iTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "Securities424iNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities 424I [N/A]",
        "terseLabel": "Securities 424I N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_SubmissionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "SubmissionLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Submission [Line Items]",
        "terseLabel": "Items"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_SubmissnTp": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "SubmissnTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Submission Type",
        "terseLabel": "Submission Type"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_TermntnCmpltnWdrwl": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TermntnCmpltnWdrwl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Termination / Completion / Withdrawal Statement",
        "terseLabel": "Termination / Withdrawal Statement"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_TtlFeeAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TtlFeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Fee Amount",
        "terseLabel": "Total Fee Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlFeeAndIntrstAmt": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TtlFeeAndIntrstAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Fee and Interest Amount",
        "terseLabel": "Total Fee and Interest Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlOfferingAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TtlOfferingAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Offering Amount",
        "terseLabel": "Total Offering"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlOffsetAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TtlOffsetAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Offset Amount",
        "terseLabel": "Total Offset Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlPrevslyPdAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TtlPrevslyPdAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Previously Paid Amount",
        "terseLabel": "Previously Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlTxValtn": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TtlTxValtn",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Transaction Valuation",
        "terseLabel": "Total Transaction Valuation"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TxValtn": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "TxValtn",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Transaction Valuation",
        "terseLabel": "Transaction Valuation"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_ValSctiesRcvd": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "ValSctiesRcvd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Value of Securities Received",
        "terseLabel": "Value of Securities Received",
        "documentation": "Value of securities to be received by the registrant (or cancelled upon issuance of securities to be registered on the form)"
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ffd_ValSctiesRcvdPerShr": {
     "xbrltype": "nonNegativeDecimal4lItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "localname": "ValSctiesRcvdPerShr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Value of Securities Received, Per Share",
        "terseLabel": "Value of Securities Received, Per Share",
        "documentation": "Value per share of securities to be received by the registrant (or cancelled upon issuance of securities to be registered on the form). This is included in the explanation of 457(f) fee calculation."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "415",
   "Subsection": "a"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "429"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "b"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "f"
  },
  "r7": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "o"
  },
  "r8": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "p"
  },
  "r9": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "r"
  },
  "r10": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "s"
  },
  "r11": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "u"
  },
  "r12": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Subsection": "f",
   "Section": "457"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>16
<FILENAME>0001104659-25-053036-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001104659-25-053036-xbrl.zip
M4$L#!!0    ( #J&NUHW)( [(@H  -DQ   =    =&TR-3$V,3,V9#%?97@M
M9FEL:6YG9F5E<RYH=&WM6UESVT82?K9^Q00;EZ4J@@1XR:0IIAA9VJAL:U6F
M4I5]VAH"0W+*N#(S$,G\^NW&01P$+QVV4KO)0RA,3_?7YS0:D\$O2]<A#TQ(
M[GL7[\RZ\8XPS_)M[LTNWHW&ES<W[WX9G@SF"LB U),7VERIH-]H+!:+^J)5
M]\6L8?9ZO<82:;28J+]TN/=M.RFNKDDGPN$%4GP2$3<-H]7@GE34LUB>WLXV
MY(F[C7@Q)>72;S?-\UW,8XKUAN4V6A.! &SVQZ]?/V?DJIH^(VTH03TY]85+
M%9@8.75THZDWNSDFNF16@1'\79_Y#WOYO-=;9LIGP^)%37%Y0N7:C#8KV3"5
M"0NPH]E)":=3NYH0%F+"X0DA@SFC-OZ GXHKAPVO_M"O;S[?W/Z37%]=C0>-
M^"F2-E+:P<2W5\DFFS\0J58.N]!L+@.'KOK$\SVFQ>M P9=]W,A$^B1YQFV;
M>=FS^"ELO0U=)KA%/.H"4T#;OP;SW0<:L7Q/L:7ZRJ87FK TPD%#OGS03;.K
M#<?Z^T&CP.$@WN-PXG(IO=W\SQ_-_YJQJ^6<3[C:+>&]MF'YXX2!__M7'GAK
M=<D\B#KGQK/9\A-;[9+:TX:&89CM=JO;[3U>XE<VXQ(C7=W"R@Z!34,;W@E?
M^>0SG4ARXUF/L>F=8 _26=W9U\ZL*,R?3H7S'\BM..-0JNI/?-]AU)M2!],H
MPV)J0_".)(!FPL@=Y?96,-%".6(1GV!3)J#R,EE CEG;E]:<N11PD:AP]N<"
M(6)*RFTYB3]T_%%?2EM+]JE5 (I+[@8.TQHE4%4 8F#2#T495U2T^XG%(E.
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
%"@     !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>tm2516136d1_ex-filingfees_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/2025"
  xmlns:ffd="http://xbrl.sec.gov/ffd/2025"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef
      xlink:href="https://xbrl.sec.gov/ffd/2025/ffd-2025.xsd"
      xlink:type="simple"/>
    <context id="rc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001443669</identifier>
        </entity>
        <period>
            <startDate>2025-05-23</startDate>
            <endDate>2025-05-23</endDate>
        </period>
    </context>
    <context id="offrl_1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001443669</identifier>
            <segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                    <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-23</startDate>
            <endDate>2025-05-23</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="pure">
        <measure>pure</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <ffd:FormTp contextRef="rc" id="ixv-116">S-8</ffd:FormTp>
    <ffd:SubmissnTp contextRef="rc" id="ixv-117">S-8</ffd:SubmissnTp>
    <ffd:FeeExhibitTp contextRef="rc" id="ixv-118">EX-FILING FEES</ffd:FeeExhibitTp>
    <dei:EntityCentralIndexKey contextRef="rc" id="ixv-119">0001443669</dei:EntityCentralIndexKey>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-120">Proto Labs Inc</dei:EntityRegistrantName>
    <ffd:PrevslyPdFlg contextRef="offrl_1" id="ixv-121">false</ffd:PrevslyPdFlg>
    <ffd:FormTp contextRef="rc" id="ixv-146">S-8</ffd:FormTp>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-147">Proto Labs Inc</dei:EntityRegistrantName>
    <ffd:OfferingSctyTp contextRef="offrl_1" id="ixv-148">Equity</ffd:OfferingSctyTp>
    <ffd:OfferingSctyTitl contextRef="offrl_1" id="ixv-149">Common Stock, par value $0.001 per share</ffd:OfferingSctyTitl>
    <ffd:Rule457aFlg contextRef="offrl_1" id="ixv-150">true</ffd:Rule457aFlg>
    <ffd:AmtSctiesRegd
      contextRef="offrl_1"
      decimals="0"
      id="ixv-151"
      unitRef="Shares">296000</ffd:AmtSctiesRegd>
    <ffd:MaxOfferingPricPerScty
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-152"
      unitRef="USD">36.99</ffd:MaxOfferingPricPerScty>
    <ffd:MaxAggtOfferingPric
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-153"
      unitRef="USD">10949040.00</ffd:MaxAggtOfferingPric>
    <ffd:FeeRate
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-154"
      unitRef="pure">0.0001531</ffd:FeeRate>
    <ffd:FeeAmt
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-155"
      unitRef="USD">1676.30</ffd:FeeAmt>
    <ffd:TtlOfferingAmt contextRef="rc" decimals="INF" id="ixv-156" unitRef="USD">10949040.00</ffd:TtlOfferingAmt>
    <ffd:TtlFeeAmt contextRef="rc" decimals="INF" id="ixv-157" unitRef="USD">1676.30</ffd:TtlFeeAmt>
    <ffd:TtlOffsetAmt contextRef="rc" decimals="INF" id="ixv-158" unitRef="USD">0.00</ffd:TtlOffsetAmt>
    <ffd:NetFeeAmt contextRef="rc" decimals="INF" id="ixv-159" unitRef="USD">1676.30</ffd:NetFeeAmt>
    <ffd:OfferingNote contextRef="offrl_1" id="ixv-160">(1) Pursuant to Rule 416(a) under the Securities Act of 1933, as amended (the "Securities Act"), this Registration Statement on Form S-8 shall also cover any additional shares of the common stock of Proto Labs, Inc. (the "Registrant") that become issuable in respect of the securities identified in the above table under the Amended and Restated Proto Labs, Inc. 2022 Long-Term Incentive Plan (the "Plan") by reason of any stock dividend, stock split, recapitalization or other similar transaction effected without the Registrant's receipt of consideration that results in an increase in the number of the outstanding shares of the Registrant's common stock.

(2) Represents an additional 296,000 shares of the Registrant's common stock, par value $0.001 per share, that are authorized for issuance under the Plan.

(3) Estimated solely for the purpose of calculating the registration fee in accordance with Rule 457(c) and Rule 457(h) under the Securities Act using the average of the high and low sale prices of the common stock on May 23, 2025, as reported on The New York Stock Exchange, which is within five business days prior to filing this Registration Statement on Form S-8.
</ffd:OfferingNote>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
