# Notices for Eclipse OCL

This content is produced and maintained by the Eclipse OCL project.

* Project home: https://projects.eclipse.org/projects/modeling.mdt.ocl

## Trademarks

OCL™ is a trademark of the Eclipse Foundation.

## Copyright

All content is the property of the respective authors or their employers. For
more information regarding authorship of content, please consult the listed
source code repository logs.

## Declared Project Licenses

This program and the accompanying materials are made available under the terms
of the Eclipse Public License v. 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0.

SPDX-License-Identifier: EPL-2.0

## Source Code

The project maintains the following source code repositories:

* https://git.eclipse.org/r/ocl/org.eclipse.ocl
* https://github.com/eclipse-ocl/ocl-website

## Third-party Content

ANTLR (3.2)

* License: New BSD license

asm (3.3.1 ... )

* License: New BSD license

DocBook Eclipse XSL StyleSheeet Version March 18, 2010 (n/a)

* License: Customized MIT license with "no endorsement" clause 

Google Guava (14.0.1)

* License: Apache License, 2.0

Google Guava (15.0.0 ...)

* License: Apache License, 2.0

Guava (10.0.1 ...)

* License: Apache License, 2.0

LALR Parser Generator (LPG) Java Runtime (1.1)

* License: Eclipse Public License

LPG (2.0.17)

* License: Eclipse Public License

LPG Java Runtime (lpgjavaruntime.jar) (1.1)

* License: Eclipse Public License

LPG Runtime and Generated OCL Parser Version: 1 (n/a)

* License: Eclipse Public License

OMG UML (2.4)

* License: Object Management Group License

OMG UML (2.5)

* License: Object Management Group License

## Cryptography

Content may contain encryption software. The country in which you are currently
may have restrictions on the import, possession, and use, and/or re-export to
another country, of encryption software. BEFORE using any encryption software,
please check the country's laws, regulations and policies concerning the import,
possession, or use, and re-export of encryption software, to see if this is
permitted.