# Notices for Eclipse Equinox

This content is produced and maintained by the Eclipse Equinox project.

* Project home: https://projects.eclipse.org/projects/eclipse.equinox

## Trademarks

Eclipse Equinox, and Equinox are trademarks 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
http://www.eclipse.org/legal/epl-2.0.

SPDX-License-Identifier: EPL-2.0

## Source Code

The project maintains the following source code repositories:

* http://git.eclipse.org/c/equinox/rt.equinox.binaries.git
* http://git.eclipse.org/c/equinox/rt.equinox.bundles.git
* http://git.eclipse.org/c/equinox/rt.equinox.framework.git
* http://git.eclipse.org/c/equinox/rt.equinox.p2.git