<pre>
# Notices for Eclipse MDM|BL

This content is produced and maintained by the Eclipse MDM|BL project,
it is a project of the openMDM(R) Eclipse Working Group.

* Project home: https://projects.eclipse.org/projects/technology.mdmbl

## Trademarks

Eclipse MDM|BL, MDM|BL and Eclipse openMDM(R) logo are registered trademarks
of the Eclipse Foundation.

## Copyright

All content is the property of the following respective authors or their employers.
For more information regarding authorship of content, please consult the listed
source code repository logs.

Copyright (c) 2016-2018 Gigatronik Ingolstadt GmbH
Copyright (c) 2016-2018 Peak Solution GmbH
Copyright (c) 2017-2018 science + computing AG Tuebingen (ATOS SE)
Copyright (c) 2017-2018 Canoo Engineering AG
Copyright (c) 2017 Florian Schmitt
Copyright (c) 2017-2018 Angelika Wittek
Copyright (c) 2018 Elektronische Fahrwerksysteme GMBH
Copyright (c) 2018 Karakun AG

## 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:

org.eclipse.mdm.api.base.git          - The openMDM(R) API.
org.eclipse.mdm.api.default.git     - Extension of the openMDM(R) API containing default elements.
org.eclipse.mdm.api.odsadapter.git  - ODS implementation of persistence adapter.
org.eclipse.mdm.nucleus.git         - Core building blocks for the openMDM Business Logic and Web Frontend.

## Third-party Content

The Content includes items that have been sourced from third parties as set out below.
If you did not receive this Content directly from the Eclipse Foundation, the following
is provided for informational purposes only, and you should look to
the Redistributor's license for terms and conditions of use.

antlr4-4.5.3.jar(2.5.3)
    * License: New BSD license

aopalliance-repackaged-2.5.0-b05.jar (2.5.0-b05)
    * License: CDDL

commons-codec-1.2.jar (1.2)
    * License: Apache License, 2.0

commons-httpclient-3.1.jar  (3.1)
    * License: Apache License, 2.0

commons-lang3-3.4.jar (3.4)
    * License: Apache License, 2.0

gson-2.7.jar (2.7)
    * License: Apache License, 2.0

Google Guava Version: 25.0-jre  (25.0)
    * License: Apache License, 2.0
    
Gradle Wrapper (4.10.2)
    * License: Apache License, 2.0     

hk2-api-2.5.0-b05.jar (2.5.0-b05)
    * License: CDDL-1.1

hk2-locator-2.5.0-b05.jar(2.5.0-b05)
    * License: CDDL

hk2-utils-2.5.0-b05.jar  (2.5.0-b05)
    * License: CDDL

jackson-annotations-2.9.0.jar  (2.9.0)
    * License: Apache License, 2.0

jackson-core-2.9.2.jar(2.9.2)
    * License: Apache License, 2.0

jackson-databind-2.9.2.jar  (2.9.2)
    * License: Apache License, 2.0

jackson-jaxrs-base-2.9.2.jar(2.9.2)
    * License: Apache License, 2.0

jackson-jaxrs-json-provider-2.9.2.jar(2.9.2)
    * License: Apache License, 2.0

jackson-module-jaxb-annotations-2.9.2.jar  (2.9.2)
    * License: Apache License, 2.0

javassist-3.20.0-GA.jar  (2.20.0-GA)
    * License: Apache 2.0

jcl-over-slf4j-1.7.25.jar(1.7.25)
    * License: MIT License
    * Licence Path: https://www.slf4j.org/license.html
    * Project URL:  https://www.slf4j.org
    * Source URL:   https://github.com/qos-ch/slf4j

jersey-client-2.23.2.jar (2.23.2)
     * License: CDDL

jersey-common-2.23.2.jar (2.23.2)
    * License: CDDL

jersey-container-servlet-2.23.2.jar  (2.23.2)
    * License: CDDL

jersey-container-servlet-core-2.23.3.jar(2.23.2)
    * License: CDDL

jersey-guava-2.23.2.jar  (2.23.2)
    * License: Apache License, 2.0

jersey-media-jaxb-2.23.2.jar(2.23.2)
    * License: CDDL

jersey-media-sse-2.23.2.jar (2.23.2)
    * License: CDDL

jersey-server-2.23.2.jar (2.23.2)
    * License: Apache-2.0

logback-classic-1.2.3.jar(1.2.3)
    * License: Eclipse Public License 1.0

logback-core-1.2.3.jar(1.2.3)
    * License: Eclipse Public License 1.0

osgi-resource-locator-1.0.1.jar(1.0.1)
    * License: CDDL

protobuf-java-3.2.0.jar (3.2.0)
    * License: New BSD license

protobuf-java-util-3.2.0.jar  (3.2.0)
    * License: New BSD license

slf4j-api-1.7.25.jar  (1.7.25)
    * License: MIT license
    * Licence Path: https://www.slf4j.org/license.html
    * Project URL: https://github.com/qos-ch/slf4j
    * Source URL:  https://github.com/qos-ch/slf4j/releases/tag/v_1.7.25

validation-api-1.1.0.Final.jar (1.1.0.Final)
* License: Apache License, 2.0

vavr-0.9.1-sources.jar (0.9.1)
* License: Apache License, 2.0

@angular/common@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/compiler@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/core@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/forms@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/http@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/platform-browser-dynamic@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/platform-browser@2.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@angular/router@3.4.8
    * License: MIT
    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
    * Project: https://github.com/angular/angular
    * Source:  https://github.com/angular/angular

@types/file-saver@0.0.0
    * License: MIT
    * Licence Path: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE
    * Project: https://github.com/DefinitelyTyped/DefinitelyTyped
    * Source:  https://github.com/DefinitelyTyped/DefinitelyTyped

bootstrap@3.3.7
    * License: MIT
    * Licence Path: https://github.com/twbs/bootstrap/raw/master/LICENSE
    * Project: https://github.com/twbs/bootstrap
    * Source:  https://github.com/twbs/bootstrap

class-transformer@0.1.6
    * License: MIT
    * Licence Path: https://github.com/typestack/class-transformer/blob/master/LICENSE
    * Project: https://github.com/pleerock/class-transformer
    * Source:  https://github.com/pleerock/class-transformer

core-js@2.4.1
    * License: MIT
    * Licence Path: https://github.com/zloirock/core-js/raw/master/LICENSE
    * Project: https://github.com/zloirock/core-js
    * Source:  https://github.com/zloirock/core-js

file-saver@1.3.3
    * License: MIT
    * Licence Path: https://github.com/eligrey/FileSaver.js/raw/master/LICENSE.md
    * Project: https://github.com/eligrey/FileSaver.js
    * Source:  https://github.com/eligrey/FileSaver.js

font-awesome@4.7.0
    * License: MIT
    * Licence Path: https://github.com/FortAwesome/Font-Awesome/blob/master/LICENSE.txt
    * Project: https://fontawesome.com/
    * Source:  https://github.com/FortAwesome/Font-Awesome

moment@2.17.1
    * License: MIT
    * Licence Path: https://github.com/moment/moment/raw/master/LICENSE
    * Project: https://github.com/moment/moment
    * Source:  https://github.com/moment/moment

ngx-bootstrap@1.9.1
    * License: MIT
    * Licence Path: https://github.com/valor-software/ngx-bootstrap/blob/development/LICENSE
    * Project: https://valor-software.com/ngx-bootstrap
    * Source:  https://github.com/valor-software/ngx-bootstrap

ng2-split-pane@1.3.1
    * License: MIT
    * Licence Path: https://github.com/wannabegeek/ng2-split-pane/raw/master/LICENSE
    * Project: https://github.com/wannabegeek/ng2-split-pane
    * Source:  https://github.com/wannabegeek/ng2-split-pane

primeng@2.0.5
    * License: MIT
    * Licence Path: https://github.com/primefaces/primeng/raw/master/LICENSE.md
    * Project: https://github.com/primefaces/primeng
    * Source:  https://github.com/primefaces/primeng

reflect-metadata@0.1.3
    * License: Apache-2.0
    * Project: https://github.com/rbuckton/ReflectDecorators
    * Source:  https://github.com/rbuckton/ReflectDecorators

rxjs@5.1.0
    * License: Apache-2.0
    * Project: https://github.com/ReactiveX/RxJS
    * Source:  https://github.com/ReactiveX/RxJS

symbol-observable@1.2.0
    * License: MIT
    * Licence Path: https://github.com/blesh/symbol-observable/raw/master/license
    * Project: https://github.com/blesh/symbol-observable
    * Source:  https://github.com/blesh/symbol-observable

ts-helpers@1.1.1
    * License: MIT
    * Licence Path: https://github.com/ngParty/ts-helpers/raw/master/LICENSE
    * Project: https://github.com/ngParty/ts-helpers
    * Source:  https://github.com/ngParty/ts-helpers

zone.js@0.7.6
    * License: MIT
    * Licence Path: https://github.com/angular/zone.js/raw/master/LICENSE
    * Project: https://github.com/angular
    * Source:  https://github.com/angular/zone.js
    
FFAMFAMFAM Silk Icon, Version 1.3
    * License: Creative Commons Attribution 3.0 License 
    * Licence Path: https://creativecommons.org/licenses/by/3.0/
    * Project: http://www.famfamfam.com/lab/icons/silk/
    * Source:  http://www.famfamfam.com/lab/icons/silk/

ods530.idl
Permission of use:
"The ASAM Board of Directors releases the IDL files for use under the EPL to the Eclipse IWG openMDM.
This is valid for all versions of ASAM ODS 5.3.x.
This permission is valid under the conditions of Eclipse will not modify the file."

AvalonEvent.idl, CorbaFileServer.idl
"Herewith, we release the generated Client-Source-Code generated from our CORBA IDLs, namely
* CORBANotification Service (generated from „AvalonEvent.idl”)
* CORBAFileServer (generated from „CorbaFileServer.idl“),
Under the Eclipse Public License (EPL). This agreement does not include the „AvalonEvent.idl“ and
„CorbaFileServer.idl“ itself, which remain protected property of HighQSoft. "

OMG Notification Service Specification Version: 1.1
The terms of use are defined in section "Freely Available And Available
Free" see: http://www.omg.org/gettingstarted/overview.htm

OMG Event Service Specification Version: 1.2
The terms of use are defined in section "Freely Available And Available
Free" see: http://www.omg.org/gettingstarted/overview.htm


## 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.
</pre>
