Apache Syncope
Copyright 2012-2022 The Apache Software Foundation

This product includes software developed by:
The Apache Software Foundation (http://www.apache.org/).

The following copyright notice(s) were affixed to portions of this code
with which this file is now or was at one time distributed.

==

This product includes software developed by the Jackson project.

==

This product includes software developed by Error Prone.

==

This product includes software developed by the Google Guava project.
Copyright (c) 2016 The Guava Authors.

==

This product includes software developed by J2ObjC: Java to Objective-C Translator and Runtime.

==

This product includes software developed by Nimbus Content Type
Copyright 2020, Connect2id Ltd

==

This product includes software developed by Nimbus Language Tags
Copyright 2012-2022, Connect2id Ltd

==

This product includes software developed by Nimbus JOSE-JWT
Copyright 2012-2022, Connect2id Ltd

==

This product includes software developed by OAuth 2.0 SDK with OpenID Connect extensions
Copyright 2012-2022, Connect2id Ltd

==

This product includes software developed by the JAXB project.
Copyright (c) 2013-2016 The JAXB project.

==

This product includes software produced and maintained by Eclipse Metro
All content is the property of the respective authors or their employers.

==

This product includes software developed by UnboundID LDAP SDK for Java
Copyright 2007-2022 Ping Identity Corporation

==

This product includes software produced and maintained by Jakarta Activation project
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta Eclipse Implementation of JAXB
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta XML Web Services
All content is the property of the respective authors or their employers.

==

This product includes software developed by the Metrics project.
Copyright (c) 2010-2014 Coda Hale, Yammer.com

==

This product includes software developed by Micrometer Application Metrics
Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.

==

This product includes software developed by Netty
Copyright 2014 The Netty Project

==

This product includes software developed by the Swagger project.
Copyright 2016 SmartBear Software

==

This product includes software produced and maintained by Jakarta Annotations
All content is the property of the respective authors or their employers.

==

This product includes software developed by the Eclipse Project for JAX-RS.
Eclipse Project for JAX-RS is a trademark of the Eclipse Foundation.
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.

==

This product includes software developed by the JAF project
Copyright (c) 1997-2017 Oracle and/or its affiliates. All rights reserved.

==

This product includs software developed by Oracle.
Copyright (c) 2012-2013 Oracle and/or its affiliates. All rights reserved.

==

This product includes software developed by the Bean Validation Project (http://beanvalidation.org).
Copyright (c) Red Hat, Inc., Emmanuel Bernard

==

This product includes software developed by the Joda Time project.
Copyright (c) 2002-2016 Joda.org. All Rights Reserved.

==

This product includes software developed by the Legion of the Bouncy Castle.
Copyright (c) 2000-2016 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)

==

This product includes software developed by The Checker Framework.
Copyright (c) 2004-present by the Checker Framework developers

==

This product includes software developed by the Stax 2 Extension API Project.

==

This product includes software developed by the Woodstox Project.

==

This product includes software developed by Modernizer Maven Plugin
Copyright 2014-2022 Andrew Gaul <andrew@gaul.org>

==

This product includes software produced and maintained by Jakarta JSON Processing
All content is the property of the respective authors or their employers.

==

This product includes software developed by Hibernate Validator
Copyright 2022, The Hibernate Validator project

==

This product includes software developed by Java Apereo CAS Client
Copyright (c) 2007, JA-SIG, Inc.

==

This product includes software developed by JBoss Logging
Copyright 2020 Red Hat, Inc.

==

This product includes software developed by jsoup
Copyright (c) 2009-2022 Jonathan Hedley

==

This product includes software developed by Ldaptive Java Library
Copyright (C) 2003-2021 Virginia Tech. All Rights Reserved.

==

This product includes software developed by the Shibboleth project.

==

This product includes software developed by the ASM project.
Copyright (c) 2000-2011 INRIA, France Telecom
All rights reserved.

==

This products includes software developed by the Simple Logging Facade for Java (SLF4J) project.
Copyright (c) 2004-2016 QOS.ch.

==

This product includes software developed by SpringSource.
Copyright (c) 2004-2022 SpringSource
All rights reserved.

==

This product includes software developed by the SnakeYAML project.
