<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Eclipse Contributor Agreement</title>
  </head>
  <body lang="EN-US">
    <div id="text1">
      <h1>Eclipse Contributor Agreement</h1>
      <p>Version 3.1.0&nbsp;&nbsp;&nbsp;January 14, 2021</p>
      <p id="reference">
        <strong>This is a reference copy of the terms of the Eclipse Contributor Agreement. To actually complete 
        and submit an ECA, please go to the <a href="https://accounts.eclipse.org/user/eca">ECA form</a>.</strong>
      </p>
      <p>Thank you for your interest in one or more projects managed by the Eclipse.org Foundation, Inc. and/or the Eclipse Foundation AISBL (collectively, &quot;Eclipse&quot;). In order for You (as defined below) to make intellectual property 
        Contributions (as defined below) now or in the future to Eclipse projects, 
        You must agree to this Eclipse Contributor Agreement (&quot;ECA&quot;). 
        If You have any questions about this agreement, licensing, or anything related to 
        intellectual property at Eclipse, please send an email to 
        <a href="mailto:license@eclipse.org">license@eclipse.org</a>.
      </p>
      <p>Please read this ECA carefully before accepting its terms. By accepting the ECA, You are agreeing to 
        be bound by its terms. If You want to accept this ECA, complete the form completely, print a copy for 
        Your records, and when ready, press the &ldquo;Accept&rdquo; button at the end of this form.
      </p>
      <p>As used in this ECA: (i) &ldquo;You&quot; (or &quot;Your&quot;) shall mean the entity that
        is making this Agreement with Eclipse; (ii)&quot;Contribution&quot; shall mean
        any original work of authorship, including any modifications or additions to an existing work,
        that is submitted by You to Eclipse for inclusion in, or documentation of, any of
        the Eclipse projects; and (iii) &ldquo;Submit&rdquo; (or &ldquo;Submitted&rdquo;) means
        any form of communication sent to Eclipse (e.g. the content You post on electronic
        mailing lists, forums, content management systems, source code control systems, code review systems,
        issue tracking systems, etc. that are used by Eclipse).
      </p>
      <p>This agreement applies to all Contributions You Submit.</p>
      <p>This ECA, and the license(s) associated with the particular Eclipse projects You 
        are contributing to, provides a license to Your Contributions to Eclipse and 
        downstream consumers, but You still own Your Contributions, and except for the licenses provided 
        for in this ECA, You reserve all right, title and interest in Your Contributions. 
        In addition to the above, You grant a non-exclusive, worldwide, perpetual, royalty-free 
        license of all necessary rights under Your copyright in and to Your Contributions (the &ldquo;Specification 
        Grant&rdquo;): (a) for Eclipse (and its contributors solely as a part of Eclipse projects) 
        to create, reproduce, prepare derivative works of, publicly display, publicly perform, distribute and 
        sublicense specifications subject to the terms of the then-current Eclipse Foundation Specification 
        License, based on or derived from the Specification Content (as defined below) and (b) for recipients of 
        such specifications to create, reproduce, and distribute implementations thereof based on the portion of 
        Your Contributions or material derived from them in the specifications, subject to the terms of 
        the then-current Eclipse Foundation Specification License.
      </p>
      <p>&ldquo;Specification Content&rdquo; is the collection of interface definitions for the application or user interfaces (&ldquo;Interfaces&rdquo;) provided by the work to which Your Contribution was made,
        descriptions of the structure and semantic behavior of those Interfaces, and data formats and protocols
        associated with those Interfaces, all of which as are reasonably necessary to enable the development of 
        independent implementations of those Interfaces. For the sake of clarity, Specification Content does 
        not include implementation detail of how the Eclipse project code or Your Contribution implements the 
        Interfaces in the Specification and the Specification Grant provided above would not cover such additional 
        material.
      </p>
      <p>Eclipse requires that each Contribution You Submit now or in the future to comply with 
        the following commitments documented in the Developer Certificate of Origin (DCO). To confirm that 
        You have read and agreed to each, please click on the box beside each one.
      </p>
    </div>
    <pre>
<span id="text2-title">  Developer Certificate of Origin</span>
<span id="text2-version">  Version 1.1</span>

<span id="text2-copyright">  Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
  660 York Street, Suite 102,
  San Francisco, CA 94110 USA</span>

<span id="text2-permission">  Everyone is permitted to copy and distribute verbatim copies of this 
  license document, but changing it is not allowed.</span>

<span id="text2-title2">  Developer's Certificate of Origin 1.1</span>

<span id="text2-certify">  By making a contribution to this project, I certify that:</span>

    (a) <span id="question1">The contribution was created in whole or in part by me and I 
        have the right to submit it under the open source license 
        indicated in the file; or</span>
        
    (b) <span id="question2">The contribution is based upon previous work that, to the best 
        of my knowledge, is covered under an appropriate open source 
        license and I have the right under that license to submit that 
        work with modifications, whether created in whole or in part 
        by me, under the same open source license (unless I am 
        permitted to submit under a different license), as indicated
        in the file; or</span>

    (c) <span id="question3">The contribution was provided directly to me by some other
        person who certified (a), (b) or (c) and I have not modified
        it.</span>

    (d) <span id="question4">I understand and agree that this project and the contribution 
        are public and that a record of the contribution (including all 
        personal information I submit with it, including my signoff) is 
        maintained indefinitely and may be redistributed consistent with 
        this project or the open source license(s) involved.</span>
    </pre>
    <div id="text3">
      <p>
        You will promptly notify Eclipse if You become aware of any facts or circumstances
        that would make these commitments inaccurate in any way. To do so, please send an email to 
        <a href="mailto:license@eclipse.org">license@eclipse.org</a>
      </p>
      <p>
        Eclipse takes intellectual property very seriously, so we are going to ask 
        You to re&shy;-confirm this ECA every three years.
      </p>
    </div>
    <p id="text4">
      You represent that the information provided below is accurate.
    </p>
  </body>
</html>