Apache Syncope
Copyright 2012-2021 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 AngularJS UI Select project.
Copyright (c) 2013-2014 AngularUI

==

This product includes software developed by the Animate.css project.
Copyright (c) 2016 Daniel Eden

==

This product includes software developed by the args4j project.
Copyright (c) 2013 Kohsuke Kawaguchi and other contributors

==

This product includes software developed by the Bootbox.js project.
Copyright (C) 2011-2015 by Nick Payne nick@kurai.co.uk

==

This product includes software developed by the Bootstrap project.
Copyright (c) 2011-2016 Twitter, Inc.

==

This product includes software developed by the bootstrap-select project.
Copyright (c) 2013-2015 bootstrap-select]

==

This product includes software developed by the Modernizr project.
Copyright (C) 2016

==

This product includes software developed by the Jackson project.

==

This product includes software developed by the Java Uuid Generator (JUG) project.

==

This product includes software developed by the Caffeine project.
Copyright (c) 2021 Ben Manes. All Rights Reserved.

==

This product includes software developed by the Open JSON project.

==

This product includes software developed by the Gson project.
Copyright (c) 2008 Google Inc.

==

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 The Closure Compiler.
Copyright (c) 2009 The Closure Compiler Authors.

==

This product includes software developed by JsInterop Annotations.
Copyright (c) 2019 Google Inc. All Rights Reserved.

==

This product includes software developed by OWASP Java HTML Sanitizer.
Copyright (c) 2011, Mike Samuel
All rights reserved.

==

This product includes software developed by the Wicket - jQuery UI project.
Copyright 2012-2013 Sebastien Briquet

==

This product includes software developed by the GreenMail project.
Copyright (c) 2006 - 2019, Wael Chatila and GreenMail project contributors

==

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

==

This product includes software developed by QDox.
Copyright 2002-2009 Joe Walnes and QDox Project Team

==

This product includes software developed by the HikariCP project.

==

This product includes software developed by the google-diff-match-patch project.
Copyright (c) 2006 Google Inc.

==

This product includes the Javascript syntax highlighter.
Copyright (c) 2006, Ivan Sagalaev

==

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

==

This product includes software developed by the ClassGraph project.
Copyright (c) 2020 Luke Hutchison

==

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

==

This product includes software developed by the Ionicons project.
Copyright (c) 2016 Drifty (http://drifty.com/)

==

This product includes software developed by the slimScroll project.
Copyright (c) 2011 Piotr Rochala (http://rocha.la)

==

This product includes software developed by the Eclipse Foundation.
Copyright (c) 2019, 2020 Eclipse Foundation. All rights reserved.

==

This product includes software developed by the Eclipse Foundation.
Copyright (c) 2019, 2020 Eclipse Foundation. 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 Java Community Process (https://jcp.org/en/jsr/detail?id=181).
 Copyright (c) 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 JAX-RS project.
Copyright (c) 2014, Oracle Corporation and/or its affiliates. All rights reserved.

==

This product includes software developed by the SAAJ Standard Implementation (https://saaj.java.net/).
 Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.

==

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

==

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

==

This product includes the jQuery Core JavaScript Library.
Copyright 2007, 2016 jQuery Foundation and other contributors.

==

This product includes software developed by the jquery.cookie project.
Copyright 2014 Klaus Hartl

==

This product includes the jQuery UI JavaScript Library.
Copyright 2007, 2015 jQuery Foundation and other contributors.

==

This product includes software developed by the jQuery++ project.
Copyright (C) 2012 Bitovi

==

This product includes software developed by the jsPlumb project.
Copyright (c) 2010 - 2014 jsPlumb, http://jsplumbtoolkit.com/

==

This product includes software developed by the Kendo UI project.
Copyright (c) 2014-2015 Telerik]

==

This product includes software developed by the lodash project.
Copyright jQuery Foundation and other contributors <https://jquery.org/>]

==

This product includes software developed by Terracotta. Inc.
Ehcache source code and documentation are Copyright (c) Terracotta, Inc.

==

This product includes software developed by the SERP Project.
Copyright (c) 2002-2007, A. Abram White http://serp.sourceforge.net/
All rights reserved.

==

This product includes software developed by the ConnId project.
Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved.
Copyright 2011-2016 Tirasa S.r.l. All rights reserved.

==

This product includes software developed by the ANTLR project.
Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.

==

This product includes AspectJ (>= 1.52) software developed by the Eclipse
Software Foundation.

==

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 Serializable java.util.function Interfaces.
Copyright (c) 2015 Jakub Danek

==

This product includes software developed by the Flowable project.

==

This product includes software developed by Java Hamcrest.
Copyright (c) 2000-2015 www.hamcrest.org

==

This project includes software developed by the Jasypt project.
Copyright (c) 2014 The JASYPT team. All Rights Reserved

==

This product includes softare developed by the Javassist project.
Copyright (C) 1999- by Shigeru Chiba, All rights reserved.

==

This product includes software developed by the Liquibase project.

==

This product includes software developed by the MyBatis project.

==

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 product includes software developed by Terracotta. Inc.
Quartz Scheduler source code and documentation are Copyright (c) Terracotta, Inc.

==

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-2016 SpringSource
All rights reserved.

==

This product includes software developed by the FileSaver.js project.
Copyright (c) 2015 Carlos A. Gomes.

==

This product includes software developed by the AngularJS project.
Copyright (c) 2014-2016 Google, Inc. http://angular.io

==

This product includes software developed by the Angular Translate project.
Copyright (c) <2014> <pascal.precht@gmail.com>

==

This product includes software developed by the Bootstrap File Input project.
Copyright (c) 2014 - 2016, Kartik Visweswaran Krajee.com All rights reserved.

==

This product includes software developed by the Chart.js project.
Copyright (c) 2018 Chart.js Contributors

==

This product includes software developed by Moment.js.
Copyright (c) JS Foundation and other contributors

==

This product contains unmodified binary redistributions for H2 database engine,
which is dual licensed and available under a modified version of the MPL 1.1 (Mozilla Public License) or under the
(unmodified) EPL 1.0 (Eclipse Public License).
An original copy of the license agreement can be found at: http://www.h2database.com/html/license.html

==

This product includes software developed by the Select2 project.
Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors

==

This product includes software developed by Native AngularJS (Angular) directives for Bootstrap 4.
Copyright (c) 2012-2017 the AngularUI Team, https://github.com/organizations/angular-ui/teams/291112

==

This product includes software developed by the SnakeYAML project.

==

This product includes software developed by the Web Services Description Language for Java project.
Copyright (c) Dice.
All Rights Reserved.

==

This product includes software developed by the X-editable project.
Copyright (c) 2012 Vitaliy Potapov
