<?xml version="1.0" ?>
<proxyVoteTable xmlns="http://www.sec.gov/edgar/document/npxproxy/informationtable">
  <proxyTable>
    <issuerName>A. O. Smith Corporation</issuerName>
    <cusip>831865209</cusip>
    <meetingDate>04/13/2026</meetingDate>
    <voteDescription>Proposal to approve, by nonbinding advisory vote, the compensation of our named executive officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>263000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>263000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>AbbVie Inc.</issuerName>
    <cusip>00287Y109</cusip>
    <meetingDate>05/08/2026</meetingDate>
    <voteDescription>Say on pay - an advisory vote on the approval of executive compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>39505.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>39505.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Accenture plc</issuerName>
    <cusip>G1151C101</cusip>
    <meetingDate>01/28/2026</meetingDate>
    <voteDescription>To approve, in a non-binding vote, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>66793.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>66793.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Advanced Drainage Systems, Inc.</issuerName>
    <cusip>00790R104</cusip>
    <meetingDate>07/17/2025</meetingDate>
    <voteDescription>Approval, in a non-binding advisory vote, of the compensation for named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>303000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>303000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Advanced Micro Devices, Inc.</issuerName>
    <cusip>007903107</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>Approve on a non-binding advisory basis the compensation of the named executive officers, as disclosed in the proxy statement pursuant to the compensation disclosure rules of the U.S. Securities and Exchange Commission.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>21500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>21500.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>AECOM</issuerName>
    <cusip>00766T100</cusip>
    <meetingDate>03/03/2026</meetingDate>
    <voteDescription>Advisory vote to approve the Company's executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>371976.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>371976.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Agilent Technologies, Inc.</issuerName>
    <cusip>00846U101</cusip>
    <meetingDate>03/18/2026</meetingDate>
    <voteDescription>To approve, on a non-binding advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1016498.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>1016498.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Airbnb, Inc.</issuerName>
    <cusip>009066101</cusip>
    <meetingDate>06/05/2026</meetingDate>
    <voteDescription>To approve, on an advisory (non-binding) basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>69215.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>69215.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Albemarle Corporation</issuerName>
    <cusip>012653101</cusip>
    <meetingDate>05/05/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>231912.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>231912.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Alpha and Omega Semiconductor Limited</issuerName>
    <cusip>G6331P104</cusip>
    <meetingDate>11/11/2025</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of the Company's named executive officers as described in the Proxy Statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>783778.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>783778.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Alphabet Inc.</issuerName>
    <cusip>02079K305</cusip>
    <meetingDate>06/05/2026</meetingDate>
    <voteDescription>Advisory vote to approve compensation awarded to named executive officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>139319.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>139319.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Amazon.com, Inc.</issuerName>
    <cusip>023135106</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>Advisory Vote To Approve Executive Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>170559.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>170559.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Ambarella, Inc.</issuerName>
    <cusip>G037AX101</cusip>
    <meetingDate>06/26/2026</meetingDate>
    <voteDescription>To approve on a non-binding, advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>106242.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>106242.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>American Tower Corporation</issuerName>
    <cusip>03027X100</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>To Approve,On An Advisory Basis,The Company's Executive Compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>51570.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>51570.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>American Water Works Company, Inc.</issuerName>
    <cusip>030420103</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the compensation of the company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>188000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>188000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Analog Devices, Inc.</issuerName>
    <cusip>032654105</cusip>
    <meetingDate>03/11/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>412976.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>412976.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Aon plc</issuerName>
    <cusip>G0403H108</cusip>
    <meetingDate>06/26/2026</meetingDate>
    <voteDescription>Advisory resolution to approve the compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>9263.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>9263.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>APi Group Corporation</issuerName>
    <cusip>00187Y100</cusip>
    <meetingDate>05/15/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1105000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>1105000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>APi Group Corporation</issuerName>
    <cusip>00187Y100</cusip>
    <meetingDate>05/15/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the frequency of future advisory votes to approve the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1105000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>1105000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Applied Industrial Technologies, Inc.</issuerName>
    <cusip>03820C105</cusip>
    <meetingDate>10/21/2025</meetingDate>
    <voteDescription>Say on Pay -- To approve, through a nonbinding advisory vote, the compensation of Applied's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>184500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>184500.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Applied Materials, Inc.</issuerName>
    <cusip>038222105</cusip>
    <meetingDate>03/12/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the compensation of Applied Materials named executive officers for fiscal year 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>28148.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>28148.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Arista Networks, Inc.</issuerName>
    <cusip>040413205</cusip>
    <meetingDate>05/29/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>41872.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>41872.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Autodesk, Inc.</issuerName>
    <cusip>052769106</cusip>
    <meetingDate>06/17/2026</meetingDate>
    <voteDescription>Approve, on an advisory (non-binding) basis, the compensation of Autodesk, Inc.'s named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>509518.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>509518.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Avantor, Inc.</issuerName>
    <cusip>05352A100</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Advisory Approval of Named Executive Officer Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>5941925.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>5941925.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Avantor, Inc.</issuerName>
    <cusip>05352A100</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Advisory Vote on the Frequency of Future Advisory Votes on Executive Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>5941925.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>5941925.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Avery Dennison Corporation</issuerName>
    <cusip>053611109</cusip>
    <meetingDate>04/30/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of our executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>433.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>433.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Badger Meter, Inc.</issuerName>
    <cusip>056525108</cusip>
    <meetingDate>04/24/2026</meetingDate>
    <voteDescription>Advisory Vote To Approve Compensation Of Our Named Executive Officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>137929.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>137929.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Ball Corporation</issuerName>
    <cusip>058498106</cusip>
    <meetingDate>04/29/2026</meetingDate>
    <voteDescription>Approve, by non-binding vote, the compensation paid to the named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>141626.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>141626.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Bank of America Corporation</issuerName>
    <cusip>060505104</cusip>
    <meetingDate>05/04/2026</meetingDate>
    <voteDescription>Approving our executive compensation (an advisory, non-binding &quot;Say on Pay&quot; resolution)</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>193036.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>193036.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>BellRing Brands, Inc.</issuerName>
    <cusip>07831C103</cusip>
    <meetingDate>01/28/2026</meetingDate>
    <voteDescription>To consider and vote, on an advisory basis, for the adoption of a resolution approving the compensation of our named executive officers, as such compensation is described under the Compensation Discussion and Analysis and Executive Compensation sections of this proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>72015.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>72015.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Bentley Systems, Incorporated</issuerName>
    <cusip>08265T208</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>To approve, on an advisory (non-binding) basis, the compensation paid to the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>282000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>282000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Block, Inc.</issuerName>
    <cusip>852234103</cusip>
    <meetingDate>06/16/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>73441.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>73441.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Bloom Energy Corporation</issuerName>
    <cusip>093712107</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the fiscal 2025 compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>167217.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>167217.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Boston Scientific Corporation</issuerName>
    <cusip>101137107</cusip>
    <meetingDate>04/30/2026</meetingDate>
    <voteDescription>To approve, on a non-binding, advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>44264.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>44264.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Broadcom Inc.</issuerName>
    <cusip>11135F101</cusip>
    <meetingDate>04/20/2026</meetingDate>
    <voteDescription>Advisory vote to approve the named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>33557.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>33557.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Cadence Design Systems, Inc.</issuerName>
    <cusip>127387108</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Advisory resolution to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>40000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>40000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Carlisle Companies Incorporated</issuerName>
    <cusip>142339100</cusip>
    <meetingDate>04/29/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the Company's named executive officer compensation in 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>248625.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>248625.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Cavco Industries, Inc.</issuerName>
    <cusip>149568107</cusip>
    <meetingDate>07/29/2025</meetingDate>
    <voteDescription>Advisory Vote to Approve Named Executive Officer Compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>22700.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>22700.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>CECO Environmental Corp.</issuerName>
    <cusip>125141101</cusip>
    <meetingDate>05/27/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of CECO's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>193904.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>193904.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Cencora, Inc.</issuerName>
    <cusip>03073E105</cusip>
    <meetingDate>03/05/2026</meetingDate>
    <voteDescription>Advisory vote to approve the fiscal 2025 compensation of Cencora, Inc.'s named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>21700.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>21700.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Cintas Corporation</issuerName>
    <cusip>172908105</cusip>
    <meetingDate>10/28/2025</meetingDate>
    <voteDescription>Resolved, that the compensation of the NEOs, as disclosed pursuant to Item 402 of Regulation S-K, including the Compensation Discussion and Analysis, the compensation tables and any related material disclosed in this proxy statement, is hereby approved on a non-binding, advisory basis.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>76610.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>76610.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Cisco Systems, Inc.</issuerName>
    <cusip>17275R102</cusip>
    <meetingDate>12/16/2025</meetingDate>
    <voteDescription>Approval, on an advisory basis, of executive compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>80808.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>80808.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Clean Harbors, Inc.</issuerName>
    <cusip>184496107</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>To approve on a non-binding, advisory basis, the compensation of the Company's named executive officers as described in the Company's definitive proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>9500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>9500.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Coherent Corp.</issuerName>
    <cusip>19247G107</cusip>
    <meetingDate>11/13/2025</meetingDate>
    <voteDescription>Non-binding advisory vote to approve compensation paid to named executive officers in fiscal year 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>133400.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>133400.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Colgate-Palmolive Company</issuerName>
    <cusip>194162103</cusip>
    <meetingDate>05/08/2026</meetingDate>
    <voteDescription>Advisory vote on executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>151248.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>151248.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Comfort Systems USA, Inc.</issuerName>
    <cusip>199908104</cusip>
    <meetingDate>05/18/2026</meetingDate>
    <voteDescription>Advisory Vote to Approve the Compensation of the Named Executive Officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>31000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>31000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Core &amp; Main, Inc.</issuerName>
    <cusip>21874C102</cusip>
    <meetingDate>06/23/2026</meetingDate>
    <voteDescription>Advisory vote to approve Core &amp; Main's named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>743000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>743000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Corning Incorporated</issuerName>
    <cusip>219350105</cusip>
    <meetingDate>04/30/2026</meetingDate>
    <voteDescription>Advisory approval of our executive compensation (Say on Pay)</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>262500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>262500.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>CVS Health Corporation</issuerName>
    <cusip>126650100</cusip>
    <meetingDate>05/14/2026</meetingDate>
    <voteDescription>Say on Pay, a Proposal to Approve, on an Advisory Basis, the Company's Executive Compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>61761.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>61761.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Danaher Corporation</issuerName>
    <cusip>235851102</cusip>
    <meetingDate>05/05/2026</meetingDate>
    <voteDescription>To approve on an advisory basis the Company's named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>278578.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>278578.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Darling Ingredients Inc.</issuerName>
    <cusip>237266101</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1627.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1627.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Deckers Outdoor Corporation</issuerName>
    <cusip>243537107</cusip>
    <meetingDate>09/08/2025</meetingDate>
    <voteDescription>To approve, on a non-binding advisory basis, the compensation of our Named Executive Officers, as described in the section of the Proxy Statement entitled Compensation Discussion and Analysis.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>44128.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>44128.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Donaldson Company, Inc.</issuerName>
    <cusip>257651109</cusip>
    <meetingDate>11/21/2025</meetingDate>
    <voteDescription>Non-binding advisory vote on the compensation of our Named Executive Officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>875.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>875.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Dover Corporation</issuerName>
    <cusip>260003108</cusip>
    <meetingDate>05/08/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>127000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>127000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Ecolab Inc.</issuerName>
    <cusip>278865100</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the compensation of our named executive officers disclosed in the Proxy Statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>181919.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>181919.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Edwards Lifesciences Corporation</issuerName>
    <cusip>28176E108</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Advisory Vote to Approve Named Executive Officer Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>161026.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>161026.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Eli Lilly and Company</issuerName>
    <cusip>532457108</cusip>
    <meetingDate>05/04/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the compensation paid to the company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>11045.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>11045.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>EMCOR Group, Inc.</issuerName>
    <cusip>29084Q100</cusip>
    <meetingDate>06/04/2026</meetingDate>
    <voteDescription>Approval, by non-binding advisory vote, of named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>63200.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>63200.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Emerson Electric Co.</issuerName>
    <cusip>291011104</cusip>
    <meetingDate>02/03/2026</meetingDate>
    <voteDescription>Approval, by non-binding advisory vote, of Emerson Electric Co. executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>52825.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>52825.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Enphase Energy, Inc.</issuerName>
    <cusip>29355A107</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>To approve, on advisory basis, the compensation of our named executive officers, as disclosed in the proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1049549.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1049549.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Etsy, Inc.</issuerName>
    <cusip>29786A106</cusip>
    <meetingDate>06/09/2026</meetingDate>
    <voteDescription>Advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>72277.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>72277.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Federal Signal Corporation</issuerName>
    <cusip>313855108</cusip>
    <meetingDate>04/21/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>235653.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>235653.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Ferguson Enterprises Inc.</issuerName>
    <cusip>31488V107</cusip>
    <meetingDate>12/03/2025</meetingDate>
    <voteDescription>To approve, on an advisory basis, the fiscal 2025 compensation of the Company's Named Executive Officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>300500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>300500.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Ferguson Enterprises Inc.</issuerName>
    <cusip>31488V107</cusip>
    <meetingDate>04/30/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of the Company's Named Executive Officers for the five-month transition period from August 1, 2025 to December 31, 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>228500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>228500.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>First Solar, Inc.</issuerName>
    <cusip>336433107</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of our named executive officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>670804.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>670804.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Fortinet, Inc.</issuerName>
    <cusip>34959E109</cusip>
    <meetingDate>06/12/2026</meetingDate>
    <voteDescription>Advisory vote to approve named executive officer compensation, as disclosed in the Proxy Statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>55377.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>55377.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Fortune Brands Innovations, Inc.</issuerName>
    <cusip>34964C106</cusip>
    <meetingDate>05/05/2026</meetingDate>
    <voteDescription>Advitory vote to approve named executive officer compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>631000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>631000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Generac Holdings Inc.</issuerName>
    <cusip>368736104</cusip>
    <meetingDate>06/11/2026</meetingDate>
    <voteDescription>Advisory vote on the non-binding &quot;say-on-pay&quot; resolution to approve the compensation of our executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>477333.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>477333.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>H2O America</issuerName>
    <cusip>784305104</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of the named executive officers as disclosed in the proxy statement;</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>6127.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>6127.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>ICF International, Inc.</issuerName>
    <cusip>44925C103</cusip>
    <meetingDate>06/02/2026</meetingDate>
    <voteDescription>Advisory vote regarding ICF International's overall pay-for-performance named executive officer compensation program. Approve by non-binding, advisory vote, the Company's overall pay-for-performance executive compensation program, as described in the Compensation Discussion and Analysis, the compensation tables and the related narratives and other materials in the Proxy Statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>172000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>172000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>IDEX Corporation</issuerName>
    <cusip>45167R104</cusip>
    <meetingDate>05/06/2026</meetingDate>
    <voteDescription>Advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>380000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>380000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Ingersoll Rand Inc.</issuerName>
    <cusip>45687V106</cusip>
    <meetingDate>06/11/2026</meetingDate>
    <voteDescription>Non-binding vote to approve executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>77900.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>77900.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>International Flavors &amp; Fragrances Inc.</issuerName>
    <cusip>459506101</cusip>
    <meetingDate>04/29/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the compensation of our named executive officers in 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>58187.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>58187.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Intuitive Surgical, Inc.</issuerName>
    <cusip>46120E602</cusip>
    <meetingDate>04/30/2026</meetingDate>
    <voteDescription>To approve, by advisory vote, the compensation of the Company's Named Executive Officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>47416.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>47416.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>IQVIA Holdings Inc.</issuerName>
    <cusip>46266C105</cusip>
    <meetingDate>04/23/2026</meetingDate>
    <voteDescription>Approve an advisory (non-binding) resolution to approve IQVIA's executive compensation (say-on-pay).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>91895.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>91895.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Itron, Inc.</issuerName>
    <cusip>465741106</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Proposal to approve the advisory (non-binding) resolution relating to executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>945023.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>945023.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Jacobs Solutions Inc.</issuerName>
    <cusip>46982L108</cusip>
    <meetingDate>01/28/2026</meetingDate>
    <voteDescription>Advisory vote to approve the Company's executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>255062.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>255062.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Keysight Technologies, Inc.</issuerName>
    <cusip>49338L103</cusip>
    <meetingDate>03/19/2026</meetingDate>
    <voteDescription>Approve, on a non-binding advisory basis, the compensation of Keysight's Named Executive Officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>166454.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>166454.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Lattice Semiconductor Corporation</issuerName>
    <cusip>518415104</cusip>
    <meetingDate>05/01/2026</meetingDate>
    <voteDescription>To approve on a non-binding, advisory basis, our Named Executive Officer's compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>897539.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>897539.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Levi Strauss &amp; Co.</issuerName>
    <cusip>52736R102</cusip>
    <meetingDate>04/22/2026</meetingDate>
    <voteDescription>Advisory vote to approve executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>2716.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>2716.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Linde plc</issuerName>
    <cusip>G54950103</cusip>
    <meetingDate>07/29/2025</meetingDate>
    <voteDescription>To approve, on an advisory and non-binding basis, the compensation of Linde plc's Named Executive Officers, as disclosed in the 2025 Proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>62103.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>62103.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Linde plc</issuerName>
    <cusip>G54950103</cusip>
    <meetingDate>07/29/2025</meetingDate>
    <voteDescription>To recommend, on an advisory and non-binding basis, the frequency of holding future advisory shareholder votes on the compensation of Linde plc's Named Executive Officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>62103.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>62103.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Lowe's Companies, Inc.</issuerName>
    <cusip>548661107</cusip>
    <meetingDate>05/29/2026</meetingDate>
    <voteDescription>Advisory vote to approve the Company's named executive officer compensation in fiscal 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>304.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>304.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Lumentum Holdings Inc.</issuerName>
    <cusip>55024U109</cusip>
    <meetingDate>11/19/2025</meetingDate>
    <voteDescription>To approve, on a non-binding, advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>470708.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>470708.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Marsh &amp; McLennan Companies, Inc.</issuerName>
    <cusip>571748102</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Advisory (Nonbinding) vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>30901.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>30901.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Marvell Technology, Inc.</issuerName>
    <cusip>573874104</cusip>
    <meetingDate>06/25/2026</meetingDate>
    <voteDescription>An advisory (non-binding) vote to approve compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1207146.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>1207146.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Mastercard Incorporated</issuerName>
    <cusip>57636Q104</cusip>
    <meetingDate>06/16/2026</meetingDate>
    <voteDescription>Advisory approval of Mastercard's executive compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>18462.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>18462.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>MAXIMUS, Inc.</issuerName>
    <cusip>577933104</cusip>
    <meetingDate>03/10/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of the named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>76162.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>76162.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Medtronic plc</issuerName>
    <cusip>G5960L103</cusip>
    <meetingDate>10/16/2025</meetingDate>
    <voteDescription>Approving, on an advisory basis, the Company's executive compensation;</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>97342.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>97342.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>MercadoLibre, Inc.</issuerName>
    <cusip>58733R102</cusip>
    <meetingDate>06/09/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of our named executive officers for fiscal year 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>5269.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>5269.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Mettler-Toledo International Inc.</issuerName>
    <cusip>592688105</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Advisory Vote to Approve Executive Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>16500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>16500.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Microsoft Corporation</issuerName>
    <cusip>594918104</cusip>
    <meetingDate>12/05/2025</meetingDate>
    <voteDescription>Advisory Vote to Approve Named Executive Officer Compensation (&quot;say-on-pay vote&quot;)</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>143724.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>143724.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Mirion Technologies, Inc.</issuerName>
    <cusip>60471A101</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the compensation of our named executive officers as disclosed in the accompanying proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>230000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>230000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>MKS Inc.</issuerName>
    <cusip>55306N104</cusip>
    <meetingDate>05/11/2026</meetingDate>
    <voteDescription>The approval, on an advisory basis, of executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>57630.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>57630.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Monolithic Power Systems, Inc.</issuerName>
    <cusip>609839105</cusip>
    <meetingDate>06/11/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the 2025 executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>95050.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>95050.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Montrose Environmental Group, Inc.</issuerName>
    <cusip>615111101</cusip>
    <meetingDate>05/06/2026</meetingDate>
    <voteDescription>To approve, on a non-binding and advisory basis, the compensation of our named executive officers (&quot;Say on Pay&quot;).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>3120.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>3120.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Mueller Water Products, Inc.</issuerName>
    <cusip>624758108</cusip>
    <meetingDate>02/09/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>356000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>356000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Nextracker Inc.</issuerName>
    <cusip>65290E101</cusip>
    <meetingDate>08/18/2025</meetingDate>
    <voteDescription>The approval, on an advisory basis, of the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1064708.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>1064708.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>NIKE, Inc.</issuerName>
    <cusip>654106103</cusip>
    <meetingDate>09/09/2025</meetingDate>
    <voteDescription>To approve executive compensation by an advisory vote.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>154183.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>154183.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>nVent Electric plc</issuerName>
    <cusip>G6700G107</cusip>
    <meetingDate>05/15/2026</meetingDate>
    <voteDescription>Approve, by Non-Binding Advisory Vote, the Compensation of the Named Executive Officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1421297.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1421297.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>NVIDIA Corporation</issuerName>
    <cusip>67066G104</cusip>
    <meetingDate>06/24/2026</meetingDate>
    <voteDescription>Advisory approval of our executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>617431.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>617431.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>NXP Semiconductors N.V.</issuerName>
    <cusip>N6596X109</cusip>
    <meetingDate>06/10/2026</meetingDate>
    <voteDescription>Non-binding, advisory vote to approve Named Executive Officer compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>108352.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>108352.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>NXP Semiconductors N.V.</issuerName>
    <cusip>N6596X109</cusip>
    <meetingDate>06/10/2026</meetingDate>
    <voteDescription>Non-binding, advisory vote on the frequency of future shareholder advisory votes on Named Executive Officer compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>108352.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>108352.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>ON Semiconductor Corporation</issuerName>
    <cusip>682189105</cusip>
    <meetingDate>05/14/2026</meetingDate>
    <voteDescription>To vote on an advisory (non-binding) resolution to approve the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1958267.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>1958267.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Onto Innovation Inc.</issuerName>
    <cusip>683344105</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>To approve, on an advisory (non-binding) basis, the compensation of our named executive officers as disclosed in the proxy statement; and</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>114700.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>114700.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>OSI Systems, Inc.</issuerName>
    <cusip>671044105</cusip>
    <meetingDate>12/11/2025</meetingDate>
    <voteDescription>Advisory vote to approve the Company's named executive officer compensation for the fiscal year ended June 30, 2025.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>25200.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>25200.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Otis Worldwide Corporation</issuerName>
    <cusip>68902V107</cusip>
    <meetingDate>05/27/2026</meetingDate>
    <voteDescription>Advisory Vote to Approve Executive Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>42167.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>42167.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Owens Corning</issuerName>
    <cusip>690742101</cusip>
    <meetingDate>04/14/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, our named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>20500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>20500.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Palo Alto Networks, Inc.</issuerName>
    <cusip>697435105</cusip>
    <meetingDate>12/09/2025</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>84850.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>84850.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Pentair plc</issuerName>
    <cusip>G7S00T104</cusip>
    <meetingDate>05/05/2026</meetingDate>
    <voteDescription>To approve, by nonbinding, advisory vote, the compensation of the named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>286000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>286000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Planet Fitness, Inc.</issuerName>
    <cusip>72703H101</cusip>
    <meetingDate>05/05/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>56542.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>56542.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Power Integrations, Inc.</issuerName>
    <cusip>739276103</cusip>
    <meetingDate>06/03/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of Power Integrations' named executive officers, as disclosed in the proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>870170.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>870170.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Procore Technologies, Inc.</issuerName>
    <cusip>74275K108</cusip>
    <meetingDate>06/04/2026</meetingDate>
    <voteDescription>To approve, on a non-binding, advisory basis, the compensation of the Company's named executive officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>1167931.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>1167931.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>PTC Inc.</issuerName>
    <cusip>69370C100</cusip>
    <meetingDate>02/11/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of our named executive officers (say-on-pay).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>432391.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>432391.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>QUALCOMM Incorporated</issuerName>
    <cusip>747525103</cusip>
    <meetingDate>03/17/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>147395.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>147395.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>QUALCOMM Incorporated</issuerName>
    <cusip>747525103</cusip>
    <meetingDate>03/17/2026</meetingDate>
    <voteDescription>Approval on an advisory basis, of the frequency of future votes on our executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>147395.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>147395.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Quanta Services, Inc.</issuerName>
    <cusip>74762E102</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Approval, by non-binding advisory vote, of the compensation of Quanta's named executive officers for fiscal year 2025;</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>343240.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>343240.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Regal Rexnord Corporation</issuerName>
    <cusip>758750103</cusip>
    <meetingDate>04/28/2026</meetingDate>
    <voteDescription>Advisory vote on the compensation of the company's named executive officers as disclosed in the company's proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>604179.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>604179.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Reinsurance Group of America, Incorporated</issuerName>
    <cusip>759351604</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>Advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>26684.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>26684.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Republic Services, Inc.</issuerName>
    <cusip>760759100</cusip>
    <meetingDate>05/07/2026</meetingDate>
    <voteDescription>Advisory vote to approve our named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>70000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>70000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Roper Technologies, Inc.</issuerName>
    <cusip>776696106</cusip>
    <meetingDate>05/19/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>72990.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>72990.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Salesforce, Inc.</issuerName>
    <cusip>79466L302</cusip>
    <meetingDate>05/28/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of the fiscal 2026 compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>54354.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>54354.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Sensient Technologies Corporation</issuerName>
    <cusip>81725T100</cusip>
    <meetingDate>04/23/2026</meetingDate>
    <voteDescription>Proposal to approve the compensation paid to Sensient s named executive officers, as disclosed pursuant to Item 402 of Regulation S-K, including the Compensation Discussion and Analysis, compensation tables, and narrative discussion in the accompanying proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>98489.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>98489.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>ServiceNow, Inc.</issuerName>
    <cusip>81762P102</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Advisory vote to approve ServiceNow's named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>53751.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>53751.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>ServiceNow, Inc.</issuerName>
    <cusip>81762P102</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Advisory vote on the frequency of future advisory votes on executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>53751.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>53751.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Simpson Manufacturing Co., Inc.</issuerName>
    <cusip>829073105</cusip>
    <meetingDate>05/06/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>44000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>44000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Snowflake Inc.</issuerName>
    <cusip>833445109</cusip>
    <meetingDate>07/02/2025</meetingDate>
    <voteDescription>To approve, on a non-binding advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>48000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>48000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Snowflake Inc.</issuerName>
    <cusip>833445109</cusip>
    <meetingDate>06/29/2026</meetingDate>
    <voteDescription>To approve, on a non-binding advisory basis, the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>130609.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>130609.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Sprouts Farmers Market, Inc.</issuerName>
    <cusip>85208M102</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>To vote on a non-binding advisory resolution to approve the compensation paid to our named executive officers for fiscal 2025 (&quot;say-on-pay&quot;).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>259892.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>259892.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Sprouts Farmers Market, Inc.</issuerName>
    <cusip>85208M102</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>To vote on a non-binding advisory proposal on the frequency of future say-on-pay votes (&quot;say-on-frequency&quot;).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>259892.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>259892.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Sunrun Inc.</issuerName>
    <cusip>86771W105</cusip>
    <meetingDate>05/28/2026</meetingDate>
    <voteDescription>Advisory proposal of the compensation of our named executive officers (&quot;Say-on-Pay&quot;).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>4222937.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>4222937.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Synopsys, Inc.</issuerName>
    <cusip>871607107</cusip>
    <meetingDate>04/16/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of our named executive officers, as disclosed in the attached Proxy Statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>29200.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>29200.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>TE Connectivity plc</issuerName>
    <cusip>G87052109</cusip>
    <meetingDate>03/11/2026</meetingDate>
    <voteDescription>An advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>146360.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>146360.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Teradyne, Inc.</issuerName>
    <cusip>880770102</cusip>
    <meetingDate>05/08/2026</meetingDate>
    <voteDescription>To approve, on a non-binding, advisory basis, the 2025 compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>135736.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>135736.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Tesla, Inc.</issuerName>
    <cusip>88160R101</cusip>
    <meetingDate>11/06/2025</meetingDate>
    <voteDescription>A Tesla proposal for a non-binding advisory vote approving 2024 executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>46495.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>46495.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Tetra Tech, Inc.</issuerName>
    <cusip>88162G103</cusip>
    <meetingDate>02/19/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the Company's named executive officers' compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>2795740.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>2795740.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Texas Instruments Incorporated</issuerName>
    <cusip>882508104</cusip>
    <meetingDate>04/16/2026</meetingDate>
    <voteDescription>Board proposal regarding advisory approval of the Company's executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>128064.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>128064.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>The Home Depot, Inc.</issuerName>
    <cusip>437076102</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Advisory Vote to Approve Executive Compensation (&quot;Say-on-Pay&quot;)</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>8377.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>8377.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Thermo Fisher Scientific Inc.</issuerName>
    <cusip>883556102</cusip>
    <meetingDate>05/20/2026</meetingDate>
    <voteDescription>An advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>191074.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>191074.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>TopBuild Corp.</issuerName>
    <cusip>89055F103</cusip>
    <meetingDate>04/27/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of the Company s named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>46093.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>46093.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Trane Technologies Plc</issuerName>
    <cusip>G8994E103</cusip>
    <meetingDate>06/04/2026</meetingDate>
    <voteDescription>Advisory approval of the compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>174222.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>174222.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Trimble Inc.</issuerName>
    <cusip>896239100</cusip>
    <meetingDate>05/26/2026</meetingDate>
    <voteDescription>Advisory vote to approve executive compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>6301.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>6301.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Uber Technologies, Inc.</issuerName>
    <cusip>90353T100</cusip>
    <meetingDate>05/04/2026</meetingDate>
    <voteDescription>Advisory vote to approve 2025 named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>173193.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>173193.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Uber Technologies, Inc.</issuerName>
    <cusip>90353T100</cusip>
    <meetingDate>05/04/2026</meetingDate>
    <voteDescription>Advisory vote on the frequency of future advisory votes on named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>173193.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>1 YEAR</howVoted>
        <sharesVoted>173193.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>UnitedHealth Group Incorporated</issuerName>
    <cusip>91324P102</cusip>
    <meetingDate>06/01/2026</meetingDate>
    <voteDescription>Advisory approval of the Company's executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>23765.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>23765.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>V.F. Corporation</issuerName>
    <cusip>918204108</cusip>
    <meetingDate>07/22/2025</meetingDate>
    <voteDescription>Advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>9381.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>9381.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Valmont Industries, Inc.</issuerName>
    <cusip>920253101</cusip>
    <meetingDate>04/27/2026</meetingDate>
    <voteDescription>Advisory approval of the Company's executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>32448.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>32448.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Veralto Corporation</issuerName>
    <cusip>92338C103</cusip>
    <meetingDate>05/13/2026</meetingDate>
    <voteDescription>To approve on an advisory basis the Company's named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>830000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>830000.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>VeriSign, Inc.</issuerName>
    <cusip>92343E102</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>Advisory Vote to Approve Executive Compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>17207.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>17207.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Vertiv Holdings Co</issuerName>
    <cusip>92537N108</cusip>
    <meetingDate>06/17/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the 2025 compensation of our named executive officers as disclosed in the Proxy Statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>632617.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>632617.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Viavi Solutions Inc.</issuerName>
    <cusip>925550105</cusip>
    <meetingDate>11/12/2025</meetingDate>
    <voteDescription>Approval, in a Non-Binding Advisory Vote, of the Compensation for Named Executive Officers</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>450000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>450000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Visa Inc.</issuerName>
    <cusip>92826C839</cusip>
    <meetingDate>01/27/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation paid to our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>101535.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>101535.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Vital Farms, Inc.</issuerName>
    <cusip>92847W103</cusip>
    <meetingDate>06/10/2026</meetingDate>
    <voteDescription>To approve, on an advisory basis, the compensation of the Company's named executive officers as disclosed in the proxy statement.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>20353.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>20353.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Waste Management, Inc.</issuerName>
    <cusip>94106L109</cusip>
    <meetingDate>05/12/2026</meetingDate>
    <voteDescription>Approval, on an advisory basis, of our executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>207256.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>207256.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Waters Corporation</issuerName>
    <cusip>941848103</cusip>
    <meetingDate>05/21/2026</meetingDate>
    <voteDescription>To approve, on a non-binding, advisory basis, the compensation of the Company's executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>133581.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>133581.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Watts Water Technologies, Inc.</issuerName>
    <cusip>942749102</cusip>
    <meetingDate>05/19/2026</meetingDate>
    <voteDescription>Advisory vote to approve named executive officer compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>61500.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>61500.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>WESCO International, Inc.</issuerName>
    <cusip>95082P105</cusip>
    <meetingDate>05/28/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, the compensation of the Company's named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>35000.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>35000.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Weyerhaeuser Company</issuerName>
    <cusip>962166104</cusip>
    <meetingDate>05/15/2026</meetingDate>
    <voteDescription>Approve, on an advisory basis, compensation of the named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>5360.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>5360.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Williams-Sonoma, Inc.</issuerName>
    <cusip>969904101</cusip>
    <meetingDate>06/18/2026</meetingDate>
    <voteDescription>An advisory vote to approve executive compensation</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>646.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>646.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Winmark Corporation</issuerName>
    <cusip>974250102</cusip>
    <meetingDate>04/22/2026</meetingDate>
    <voteDescription>Advisory vote to approve executive compensation.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>250.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>AGAINST</howVoted>
        <sharesVoted>250.0</sharesVoted>
        <managementRecommendation>AGAINST</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Xylem Inc.</issuerName>
    <cusip>98419M100</cusip>
    <meetingDate>05/14/2026</meetingDate>
    <voteDescription>Advisory vote to approve the compensation of our named executive officers.</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>806643.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>806643.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
  <proxyTable>
    <issuerName>Zebra Technologies Corporation</issuerName>
    <cusip>989207105</cusip>
    <meetingDate>05/19/2026</meetingDate>
    <voteDescription>Advisory vote to approve Named Executive Officers' compensation (&quot;Say-on-Pay&quot;).</voteDescription>
    <voteCategories>
      <voteCategory>
        <categoryType>SECTION 14A SAY-ON-PAY VOTES</categoryType>
      </voteCategory>
    </voteCategories>
    <voteSource>ISSUER</voteSource>
    <sharesVoted>71390.0</sharesVoted>
    <sharesOnLoan>0.0</sharesOnLoan>
    <vote>
      <voteRecord>
        <howVoted>FOR</howVoted>
        <sharesVoted>71390.0</sharesVoted>
        <managementRecommendation>FOR</managementRecommendation>
      </voteRecord>
    </vote>
  </proxyTable>
</proxyVoteTable>
