
<h1>Eclipse Foundation Technology Compatibility Kit License - v1.1</h1>
<p>The accompanying Technology Compatibility Kit is "Copyright (c) 2025, Eclipse Foundation AISBL and its licensors."</p>
<p>Redistribution and use of the TCK (as defined below) in binary form is permitted provided that the following conditions are
  met:</p>
<ol>
  <li>Use of the Technology Compatibility Kit accompanying this license ( the &ldquo;TCK&rdquo;) and
    its documentation is permitted solely for the purpose of testing compatibility of an
    implementation (the &ldquo;Product&rdquo;) of a specification (the &ldquo;Specification&rdquo;)
    made available by the Eclipse Foundation AISBL (&ldquo;Eclipse&rdquo;).</li>
  <li>Only those modifications expressly permitted by the TCK and its documentation are permitted.
    Except in these limited circumstances, no modifications to the TCK are permitted under this
    license.</li>
  <li>A Product will be deemed to be &ldquo;compatible&rdquo; with the Specification if it fully and
    completely meets and satisfies all requirements of the TCK.&nbsp;</li>
  <li>Before any claim of compatibility (or any similar claim suggesting compatibility) is made
    based on the TCK, the testing party must:
    <ol style="list-style-type: lower-alpha">
      <li>use the TCK to demonstrate that the Product fully and completely meets and satisfies all
        requirements of the TCK;&nbsp;</li>
      <li>make TCK test results showing full and complete satisfaction of all requirements of the
        TCK publicly available on the testing party&rsquo;s website and send a link to such test
        results to Eclipse at <a href="mailto:tck@eclipse.org">tck@eclipse.org;</a> and
      </li>
      <li>comply with any requirements stated in the Specification with regard to subsetting,
        supersetting, modifying or extending the Specification in any Product claimed to be
        compatible with the Specification.</li>
    </ol>
  </li>
  <li>The test results must be continuously available and the link must be live for at least as long
    as the Product is available in the marketplace.</li>
  <li>The TCK may not be used as a basis for any statements of partial compatibility. The TCK may
    only be used as a basis for true, factual statements of full compatibility of Products that
    fully meet and satisfy all requirements of the TCK.&nbsp;</li>
  <li>A determination that a Product is compatible with the TCK does not, in itself, give rise to
    the right to use any name, mark, logo associated with the TCK, Eclipse, or Eclipse&rsquo;s
    contributors or licensors.</li>
  <li>Upon the request of Eclipse, a tester will retract any statements of compatibility (or any
    similar claim suggesting compatibility) which Eclipse reasonably determines to be false or
    misleading or in violation of the terms of this license.</li>
  <li>Redistribution of the TCK must be under this Eclipse Foundation Technology Compatibility Kit
    License and must reproduce the above copyright notice, this list of conditions and the following
    disclaimer in the documentation and/or other materials provided with the distribution.</li>
  <li>Neither the name, trademarks or logos of Eclipse, nor the names, trademarks or logos of its
    contributors or licensors may be used to endorse or promote products tested with this software
    without specific prior written permission.</li>
  <li>The source code for the TCK accompanying this license is available from Eclipse.</li>
</ol>
<p>TO THE EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED ON AN &ldquo;AS IS&rdquo;
  BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
  LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON- INFRINGEMENT, MERCHANTABILITY OR FITNESS
  FOR A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER THE COPYRIGHT OWNER
  OR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
  EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
