diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..3ba3927f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,37 @@ +version: 2 + +updates: + - package-ecosystem: pip + directories: + #- "/analysis_module" + #- "/analysis_ui_module" + - "/anonymizer_module" + - "/collector_module" + - "/corrector_module" + #- "/opendata_collector_module" + - "/opendata_module" + - "/reports_module" + schedule: + interval: "weekly" + day: "thursday" + groups: + python-minor-patch: + applies-to: version-updates + update-types: + - "minor" + - "patch" + python-major: + applies-to: version-updates + update-types: + - "major" + + - package-ecosystem: "github-actions" + directory: "/.github/workflows" + schedule: + interval: "weekly" + day: "thursday" + groups: + actions-update: + applies-to: version-updates + patterns: + - "*" diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 95b34d0e..2a445108 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -1,18 +1,20 @@ -name: X-Road Metrics tests +name: X-Road Metrics Tests on: [pull_request] jobs: Test-Anonymizer: + name: Anonymizer Tests runs-on: ubuntu-22.04 defaults: run: working-directory: ./anonymizer_module steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' cache: 'pip' + cache-dependency-path: ./anonymizer_module/setup.py - name: Install dependencies run: pip install -r test_requirements.txt - name: Install tox @@ -20,17 +22,19 @@ jobs: - name: Run tox tests run: tox Test-Collector: + name: Collector Tests runs-on: ubuntu-22.04 defaults: run: working-directory: ./collector_module steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' cache: 'pip' + cache-dependency-path: ./collector_module/setup.py - name: Install dependencies run: pip install -r test_requirements.txt - name: Install tox @@ -38,17 +42,19 @@ jobs: - name: Run tox tests run: tox Test-Corrector: + name: Corrector Tests runs-on: ubuntu-22.04 defaults: run: working-directory: ./corrector_module steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' cache: 'pip' + cache-dependency-path: ./corrector_module/setup.py - name: Install dependencies run: pip install -r test_requirements.txt - name: Install tox @@ -56,53 +62,59 @@ jobs: - name: Run tox tests run: tox Test-Opendata: + name: OpenData Tests runs-on: ubuntu-22.04 defaults: run: working-directory: ./opendata_module steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: '3.8' - cache: 'pip' - - name: Install dependencies - run: pip install -r test_requirements.txt - - name: Install tox - run: pip install tox - - name: Run tox tests - run: tox - Test-Opendata-Collector: - runs-on: ubuntu-22.04 - defaults: - run: - working-directory: ./opendata_collector_module - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' cache: 'pip' + cache-dependency-path: ./opendata_module/setup.py - name: Install dependencies run: pip install -r test_requirements.txt - name: Install tox run: pip install tox - name: Run tox tests run: tox + # Test-Opendata-Collector: + # name: OpenData Collector Tests + # runs-on: ubuntu-22.04 + # defaults: + # run: + # working-directory: ./opendata_collector_module + # steps: + # - uses: actions/checkout@v4 + # - name: Set up Python 3.8 + # uses: actions/setup-python@v5 + # with: + # python-version: '3.8' + # cache: 'pip' + # cache-dependency-path: ./opendata_collector_module/setup.py + # - name: Install dependencies + # run: pip install -r test_requirements.txt + # - name: Install tox + # run: pip install tox + # - name: Run tox tests + # run: tox Test-Reports: + name: Reports Tests runs-on: ubuntu-22.04 defaults: run: working-directory: ./reports_module steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' cache: 'pip' + cache-dependency-path: ./reports_module/setup.py - name: Install dependencies run: pip install -r test_requirements.txt - name: Install tox diff --git a/.gitignore b/.gitignore index d1a3bf27..45bd903f 100644 --- a/.gitignore +++ b/.gitignore @@ -48,7 +48,7 @@ nosetests.xml coverage.xml *,cover .hypothesis/ -test_results.xml +test_results.* # Translations *.mo diff --git a/.ort.yml b/.ort.yml new file mode 100644 index 00000000..14f9c510 --- /dev/null +++ b/.ort.yml @@ -0,0 +1,68 @@ +--- +excludes: + paths: + - pattern: "**/test_requirements.txt" + reason: "TEST_OF" + comment: "Requirements for testing." + - pattern: "3RD-PARTY-NOTICES.txt" + reason: "DOCUMENTATION_OF" + comment: "3rd party notices." + + scopes: + - pattern: "checkstyle" + reason: "BUILD_DEPENDENCY_OF" + comment: "Packages for code styling checks (testing) only." + + - pattern: "devDependencies" + reason: "DEV_DEPENDENCY_OF" + comment: "Packages for development only." + + - pattern: "jacocoAgent" + reason: "TEST_DEPENDENCY_OF" + comment: "Packages for code coverage (testing) only." + + - pattern: "jacocoAnt" + reason: "TEST_DEPENDENCY_OF" + comment: "Packages for code coverage (testing) only." + + - pattern: "test.*" + reason: "TEST_DEPENDENCY_OF" + comment: "Packages for testing only." + + - pattern: "annotationProcessor" + reason: "DEV_DEPENDENCY_OF" + comment: "Packages for development only." + + - pattern: "compileClasspath" + reason: "DEV_DEPENDENCY_OF" + comment: "Packages for development only." + + - pattern: "compileOnly" + reason: "DEV_DEPENDENCY_OF" + comment: "Packages for development only." + +resolutions: + rule_violations: + - message: "copyleft-strong license GPL-2.0-or-later in PyPI::jinja2:2.10.1." + reason: "LICENSE_ACQUIRED_EXCEPTION" + comment: "The files meant by this license hit are not in use in X-Road-Metrics." + + - message: "copyleft-strong license GPL-3.0-or-later WITH GCC-exception-3.1 in PyPI::scipy:1.10.1." + reason: "LICENSE_ACQUIRED_EXCEPTION" + comment: "The exception applies, hence license acquired." + + - message: "copyleft-strong license GPL-3.0-or-later WITH GCC-exception-3.1 in PyPI::numpy:1.24.4." + reason: "LICENSE_ACQUIRED_EXCEPTION" + comment: "The exception applies, hence license acquired." + + - message: "copyleft-strong license GPL-3.0-only WITH GCC-exception-3.1 in PyPI::numpy:1.24.4." + reason: "LICENSE_ACQUIRED_EXCEPTION" + comment: "The exception applies, hence license acquired." + + - message: "free-restricted license Bitstream-Vera in PyPI::matplotlib:3.1.2." + reason: "LICENSE_ACQUIRED_EXCEPTION" + comment: "Font files that are not modified, hence license acquired." + + - message: "free-restricted license Bitstream-Vera in PyPI::matplotlib:3.1.2." + reason: "LICENSE_ACQUIRED_EXCEPTION" + comment: "Font files that are not modified, hence license acquired." diff --git a/3RD-PARTY-NOTICES.txt b/3RD-PARTY-NOTICES.txt index e72d1cb7..e0c738f6 100644 --- a/3RD-PARTY-NOTICES.txt +++ b/3RD-PARTY-NOTICES.txt @@ -14,121 +14,91 @@ obligation to support the use of the AFM files. ---- -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. - -The Apache Software License, Version 1.1 - -Copyright (c) 2000 The Apache Software Foundation. All rights -reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Permission is hereby granted, free of charge, to any person obtaining a copy of this documentation file to use, copy, publish, distribute, sublicense, and/or sell copies of the documentation, and to permit others to do the same, provided that: + - No modification, editing or other alteration of this document is allowed; and + - The above copyright notice and this permission notice shall be included in all copies of the documentation. -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining a copy of this documentation file, to create their own derivative works from the content of this document to use, copy, publish, distribute, sublicense, and/or sell the derivative works, and to permit others to do the same, provided that the derived work is not represented as being a copy or version of this document. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. The end-user documentation included with the redistribution, - if any, must include the following acknowledgment: - "This product includes software developed by the - Apache Software Foundation (http://www.apache.org/)." - Alternately, this acknowledgment may appear in the software itself, - if and wherever such third-party acknowledgments normally appear. - -4. The names "Apache" and "Apache Software Foundation" must - not be used to endorse or promote products derived from this - software without prior written permission. For written - permission, please contact apache@apache.org. - -5. Products derived from this software may not be called "Apache", - nor may "Apache" appear in their name, without prior written - permission of the Apache Software Foundation. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. +Adobe shall not be liable to any party for any loss of revenue or profit or for indirect, incidental, special, consequential, or other similar damages, whether based on tort (including without limitation negligence or strict liability), contract or other legal or equitable grounds even if Adobe has been advised or had reason to know of the possibility of such damages. The Adobe materials are provided on an "AS IS" basis. Adobe specifically disclaims all express, statutory, or implied warranties relating to the Adobe materials, including but not limited to those concerning merchantability or fitness for a particular purpose or non-infringement of any third party rights regarding the Adobe materials. ---- -(c) 1988 Date July, -(c) Compute Hessian H -(c) Covert Chebyshev -(c) False, False, False, True -(c) False, False, True, False -(c) Multiply a Chebyshev -(c) Multiply a Hermite -(c) Multiply a Laguerre -(c) Multiply a Legendre -(c) True, True, False, False -Copyright (C) Bernie Hackett -Copyright (C) Gustavo Niemeyer -Copyright (C) Jason R. Coombs -Copyright (C) Kenneth Reitz -Copyright (c) 1995-1997 Jim Hugunin, hugunin@mit.edu -Copyright (c) 2003-2011 Gustavo Niemeyer -Copyright (c) 2009-2017 The MathJax Consortium -Copyright (c) 2010 David Fong and Michael Saunders -Copyright (c) 2011 by science+computing +Copyright 2015 (c ) by FontTools +(c) 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2015 Adobe System Incorporated +(c) 2002 Adobe Systems Incorporated +Copyright (c) 2002 Adobe Systems Incorporated +Copyright 2010-2012, 2014 Adobe Systems Incorporated +(c) 2010-2012 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2018 Adobe systems Co., Ltd. +Copyright (c) 2010 Albert Sweigart +Copyright (c) 1997, 2009, 2011 American Mathematical Society http://www.ams.org +Copyright (c) 2010-2012 Archipel Asset Management AB. +Copyright 2021, 2023 Behdad Esfahbod +Copyright (c) 2015-2019 Belleve Invis +Copyright (c) 2015-2020 Belleve Invis (belleve@typeof.net) +Copyright (c) 2008-2015 California Institute of Technology +Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University +Copyright (c) Donald Stufft and individual contributors +copyright 2010-2011 Google Corporation.Open Sans Condensed LightItalic1.10 1ASC OpenSansCondensed-LightItalicOpen Sans Condensed Light ItalicVersion +Copyright 2010-2013, 2015-2016, 2019, 2023 Google Inc. Copyright (c) 2012 Google Inc. -Copyright (c) 2012-2014 Tomi Pievilainen -Copyright (c) 2014 Eric Moore -Copyright (c) 2014-2016 Yaron de Leeuw -Copyright (c) 2015 Paul Ganssle -Copyright (c) 2015 dateutil contributors -Copyright (c) 2015-2017 Martin Hensel -Copyright (c) 2018 Google LLC -Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl -Copyright (c) 2018 Sylvain Gubian , Yang Xiang -Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct -Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier -Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 -Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono -Copyright 2004-2005 by Enthought, Inc. Copyright 2006 Google Inc. https://code.google.com/p/google-diff-match-patch -Copyright 2008 Anne M. Archibald -Copyright 2009-2016, 2018-2019 present MongoDB, Inc. -Copyright 2009-2018 MongoDB, Inc. -Copyright 2010-2012, 2015 Google Inc. -Copyright 2012 Twitter, Inc -Copyright 2013 Andrea Gavana -Copyright 2014 Eric W. Moore +Copyright (c) 2018 Google LLC +Copyright 2015-2021 Google LLC +Copyright (c) 2003-2011 Gustavo Niemeyer +Copyright 1998 Just van Rossum +Copyright 2019 Kenneth Reitz Copyright 2014 Melissa O'Neill -Copyright 2014-2019 s -Copyright 2015 Robert Kern +Copyright 2009-2018 MongoDB, Inc. +copyright 2008 MongoDB, Inc. -present +Copyright 2018 Nico +Copyright (c) 2010 Pablo Impallari (www.impallari.com impallari@gmail.com) +Copyright (c) 2020 Paul Ganssle +Copyright (c) 2015 Paul Ganssle Copyright 2017 Paul Ganssle -Copyright 2017-2019 Jason R. Coombs, Barry Warsaw -Copyright 2018-2019 Kenneth Reitz -Copyright 2020 Google LLC -Copyright Absoft Corporation +Copyright (c) 2009 PiCloud, Inc. +Copyright 2009-2023 Present MongoDB, Inc. +copyright 2020 Python Software Foundation +Copyright (c) 2012 Regents of the University of California +Copyright 2015 Robert Kern +Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl +COPYRIGHT STRING. +(c) Copyright 1994-1997 Summer Institute of Linguistics +Copyright 2010-2020 The Amiri Project +Copyright 2008 The Bungee Project +Copyright (c) 2012-2019 The Libertinus Project +Copyright (c) 2015-2019 The Mada Project +copyright (c) 2005-2016 The RoboFab Developers +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex) +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex)Roboto +Copyright (c) 2016-2024 The Uncertainty Quantification Foundation +Copyright (c) 2012-2014 Tomi Pievilainen +Copyright (c) 2009 Type Supply LLC +Copyright (c) 2014-2016 Yaron de Leeuw +Portions copyright (c) 1990 by Elsevier, Inc. +Copyright (c) 2015 by FontTools +Copyright 2017 by Jens Kutilek copyright (c) 2012, 2017 by Kenneth Reitz -copyright 2008 s, The SciPy community -copyright 2008 u'MongoDB, Inc. -present. MongoDB, Mongo -copyright 2010-2011 Google Corporation.Open Sans Condensed LightItalic1.10 1ASC OpenSansCondensed-LightItalicOpen Sans Condensed Light ItalicVersion -copyright 2013 Surya Kasturi and Pauli Virtanen -copyright 2017-2018 NumPy Developers -copyright Cephes Math -copyrighted 2004 by David M. Cooke -Csp self.spmatrix (c) Dsp +Portions copyright (c) 2009-2012 by Khaled Hosny +Portions copyright (c) 1998-2003 by MicroPress, Inc. +Copyright (c) 2010 by Pablo Impallari +Copyright (c) 2010 by Pablo Impallari. www.impallari.com +Copyright (c) 2011 by science+computing +Copyright (c) 2001-2011 by the STI Pub Companies +Copyright 2015 c +Copyright 1997, 2009, 2011 c American Mathematical Society +copyright 2019 dateutil +Copyright (c) 2015 dateutil contributors +Copyright 2017 dateutil contributors +Copyright jQuery Foundation and other contributors +copyright 2014-2019 s +copyright u'MMXVIX. A https://kenreitz.org/projects'> Kenneth Reitz Project +Copyright 2014-2019 xarray Apache License Version 2.0, January 2004 @@ -334,75 +304,64 @@ Csp self.spmatrix (c) Dsp ---- -Copyright 2002 Gary Strangman -Copyright 2002-2016 The SciPy Developers - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - ----- - -(c) 1988 Date July, +Copyright 1987 A. Volgenant/Amsterdam School of Economics, University of Amsterdam +Copyright (c) 2010 Albert Sweigart +Copyright 2013 Andrea Gavana +Copyright (c) 2003-2014 Antonin Descampe +Copyright (c) 2010-2012 Archipel Asset Management AB. +Copyright (c) 2003-2009 Bruce D. Evans +Copyright (c) 2011-2012 Centre National d'Etudes Spatiales (c) Compute Hessian H -(c) Covert Chebyshev -(c) False, False, False, True -(c) False, False, True, False -(c) Multiply a Chebyshev -(c) Multiply a Hermite -(c) Multiply a Laguerre -(c) Multiply a Legendre -(c) True, True, False, False +(c) 1988 Date July, Copyright (c) 1994 David Burren -Copyright (c) 1995-1997 Jim Hugunin, hugunin@mit.edu -Copyright (c) 2001-2008 Ville Laurikari -Copyright (c) 2005-2011 NumPy Developers -Copyright (c) 2007, 2011 David Schultz -Copyright (c) 2008 Stefan van der Walt , Pauli Virtanen -Copyright (c) 2008 The Android Open Source Project Copyright (c) 2010 David Fong and Michael Saunders -Copyright (c) 2010-2012 Archipel Asset Management AB. -Copyright (c) 2011 by Enthought, Inc. +Copyright (c) 2001-2003 David Janssens +Copyright (c) 2003-2011 David Schultz +Copyright (c) 2007, 2011 David Schultz +copyright 2010 David Wolever +Copyright (c) Donald Stufft and individual contributors +Copyright (c) 2014 Eric Moore +Copyright 2014 Eric W. Moore +Copyright (c) 2003-2009 Francois-Olivier Devaux +Copyright 2002 Gary Strangman +Copyright (c) 2012 Google Inc. +Copyright (c) 2005 Herve Drolon, FreeImage Team +Copyright (c) 2014 Janani Padmanabhan Copyright (c) 2012 Jaydeep P. Bardhan +(c) KOKOKOKOKKuKyKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKyK KyKxKzKzKzKzKzKzKzKzKzKzKzKzKyKxKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzK K K KzK K +Copyright (c) 2011 Kenneth Reitz +Copyright (c) 2012 Massachusetts Institute of Technology +Copyright 2016-2021 Matthew Brett, Isuru Fernando, Matti Picus Copyright (c) 2012 Matthew G. Knepley +Copyright (c) 2005-2015 Michele Simionato +Copyright (c) 2013-2023 Nucleic Development Team +Copyright (c) 2005-2011 NumPy Developers +Copyright (c) 2002-2014 Professor Benoit Macq +Copyright (c) 2016, 2020 PyData Development Team +Copyright (c) 2005-2014 Rich Felker +Copyright (c) 2008 Stephen L. Moshier Copyright (c) 2012 Stephen Montgomery-Smith -Copyright (c) 2013-2020 Nucleic Development Team -Copyright (c) 2014 Eric Moore -Copyright (c) 2014 Janani Padmanabhan -Copyright (c) 2016 PyData Development Team +Copyright (c) 2003-2009 Steven G. Kargl +Copyright (c) 1993, 2004 Sun Microsystems Copyright (c) 2018 Sylvain Gubian , Yang Xiang -Copyright (c) Donald Stufft and individual contributors -Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct -Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier -Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 -Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN +Copyright (c) 2011 Szabolcs Nagy +Copyright (c) 2008, 2010 The Android Open Source Project +Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory +Copyright 2002-2016 The SciPy Developers +Copyright (c) 2011 Valentin Ochs +Copyright (c) 2001-2008 Ville Laurikari +Copyright (c) 2016 Wenzel Jakob +Copyright (c) 2002-2003 Yannick Verschueren +Copyright (c) 2010 by Armin Ronacher Copyright 2004-2005 by Enthought, Inc. -Copyright 2008 Anne M. Archibald -Copyright 2011 by Armin Ronacher. :license Flask Design -Copyright 2013 Andrea Gavana -Copyright 2014 Eric W. Moore -Copyright 2014 by P.-G. Martinsson, V. Rokhlin, Y. Shkolnisky, and M. Tygert -Copyright Absoft Corporation +Copyright (c) 2011 by Enthought, Inc. +Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier +Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct +copyright 2014-2019 s copyright 2008 s, The SciPy community -copyright 2010 David Wolever -copyright 2017-2018 NumPy Developers -copyright Cephes Math -copyrighted 2004 by David M. Cooke +France Copyright (c) 2012, CS Systemes d'Information, France Csp self.spmatrix (c) Dsp +Gamma (c) Gamma (c) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -456,188 +415,245 @@ either expressed or implied, of the FreeBSD Project. ---- -(c) 1988 Date July, -(c) 2012 Continuum Analytics, Inc. / http://continuum.io -(c) 2012-2013 Continuum Analytics, Inc. / https://www.continuum.io -(c) 2013 title 0.09734s from fe2.rs.github.com' GitHub, Inc. +Copyright (c) 2009 ', join +Copyright 2015 (c ) by FontTools +Copyright (c) 2021 04-21 Stefan van der Walt https://github.com/stefanv/lloyd +Copyright 2000, 2004 2005Adobe Systems Incorporated +copyright A. Volgenant/Amsterdam School of Economics, University of Amsterdam +Copyright 1987 A. Volgenant/Amsterdam School of Economics, University of Amsterdam +Copyright (c) 2008-2011 AQR Capital Management, LLC +Copyright (c) 2008-2011 AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team +copyright 2018 ASGI Team +Copyright Absoft Corporation +Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN +Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 +Copyright 2002-2021 Adobe (http://www.adobe.com/) +(c) 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2015 Adobe System Incorporated +(c) 2002 Adobe Systems Incorporated +Copyright (c) 2002 Adobe Systems Incorporated +Copyright 2010-2012, 2014 Adobe Systems Incorporated +(c) 2010-2012 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2018 Adobe systems Co., Ltd. +Copyright (c) 2010 Albert Sweigart +Copyright (c) 2006-2013 Alexander Chemeris +Copyright (c) 1997, 2009, 2011 American Mathematical Society http://www.ams.org +Copyright (c) 2016 Andi Albrecht +Copyright 2013 Andrea Gavana +Copyright (c) 2010-2012 Archipel Asset Management AB. +Copyright (c) 2008-2009 Aryeh Leib Taurog +Copyright (c) 2008-2009 Aryeh Leib Taurog, http://www.aryehleib.com (c) B Whether (c) B' Both +Copyright (c) 2010 Bartosz Telenczuk +Copyright 2021 Behdad Esfahbod +Copyright (c) 2015-2019 Belleve Invis +Copyright (c) 2015-2020 Belleve Invis (belleve@typeof.net) (c) Better News +Copyright (c) 2003-2009 Bruce D. Evans +Copyright (c) 2004-2016 California Institute of Technology +copyright Cephes Math (c) Compute Hessian H -(c) Copyright 2008 by I -(c) Copyright 2008 by http://domain.invalid/'> -(c) Covert Chebyshev +(c) Convert Chebyshev +Copyright (c) 1995-2001 Corporation for National Research Initiatives +Copyright (c) 2020 CourtBouillon +copyright CourtBouillon and contributors +Copyright 2010-2012 D. E. Shaw Research +Copyright (c) 2007-2008 Damian Eads +(c) 1988 Date July, +Copyright (c) 1994 David Burren +Copyright (c) 2010 David Fong and Michael Saunders +Copyright (c) 2001-2017 David M. Beazley (Dabeaz LLC) +Copyright (c) 2004 David M. Cooke +Copyright (c) 2003-2011 David Schultz +Copyright 1991 Dieter Kraft, FHM +COPYRIGHT Django Software Foundation and contributors +copyright Django Software Foundation and contributors +Copyright (c) Django Software Foundation and individual contributors +Copyright (c) 2011-2013 ESN Social Software AB and Jonas Tarnstrom +Copyright (c) 2008-2022 Eli Bendersky +Copyright (c) 2001-2002, 2011 Enthought, Inc +Copyright (c) 2001-2022 Enthought, Inc. , SciPy Developers +Copyright (c) 2014 Eric Moore +Copyright 2014 Eric W. Moore +Copyright (c) 2006 Estrate, the Netherlands (c) False, False, False, True (c) False, False, True, False +Copyright (c) 1995-1998, 2000-2017 Free Software Foundation, Inc. +Copyright (c) 2007, 2009 Free Software Foundation, Inc. +Copyright 2002 Gary Strangman (c) Good News +Copyright (c) 2010, 2012 Google Inc. +Copyright 2011, 2013, 2015-2016, 2019 Google Inc. +Copyright 2015-2021 Google LLC. +Copyright (c) 2003-2011 Gustavo Niemeyer (c) Hello Jack -(c) Multiply a Chebyshev -(c) Multiply a Hermite -(c) Multiply a Laguerre -(c) Multiply a Legendre -(c) True, True, False, False -COPYRIGHT Django Software Foundation and contributors -Copyright (C) Andi Albrecht -Copyright (C) Armin Ronacher -Copyright (C) Django Software Foundation -Copyright (C) Eli Bendersky -Copyright (C) Geoffrey Sneddon -Copyright (C) Gustavo Niemeyer -Copyright (C) Kim Davies -Copyright (C) Mike McKerns -Copyright (C) Simon Sapin -Copyright (C) The Nucleic Development Team -Copyright (C) Thomas A Caswell -Copyright (C) Travis E. Oliphant et al. -Copyright (c) 1988-1993, 1996 The Regents of the University of California -Copyright (c) 1993, 2004 Sun Microsystems -Copyright (c) 1994 David Burren -Copyright (c) 1994 Sun Microsystems, Inc. +Copyright 2015 International Color Consortium, +Copyright (c) 2003-2005 Jean-Sebastien Roy (js@jeannot.org) +Copyright (c) 2009-2019 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors Copyright (c) 1995-1997 Jim Hugunin, hugunin@mit.edu -Copyright (c) 1996-2008 Rice University +Copyright (c) 2007 John Travers +Copyright 2015 Jon Lund Steffensen +Copyright (c) 2010 Jordi Gutierrez Hermoso +Copyright 1998 Just van Rossum +Copyright (c) 2007-2009 Justin Bronn +(c) KOKOKOKOKKuKyKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKyK KyKxKzKzKzKzKzKzKzKzKzKzKzKzKyKxKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzK K K KzK K +Copyright (c) 2013 Kenneth L. Ho +Copyright (c) 2011 Kenneth Reitz +Copyright (c) 2019 Kevin Sheppard +Copyright (c) 2013-2024 Kim Davies and contributors +Copyright (c) 2011-2012 Lambda Foundry, Inc. Copyright (c) 1997-2002 Makoto Matsumoto and Takuji Nishimura -Copyright (c) 2001-2002 Enthought, Inc. -Copyright (c) 2001-2003 Patrick K. O'Brien and Contributors -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright (c) 2001-2011 Scilab Enterprises -Copyright (c) 2001-2017 David M. Beazley (Dabeaz LLC) -Copyright (c) 2001-2019 Enthought, Inc. , SciPy Developers -Copyright (c) 2002 Michael Ringgaard -Copyright (c) 2002 Travis Oliphant +Copyright (c) 2008-2010 Marius Gedminas Copyright (c) 2003, 2007-2014 Massachusetts Institute of Technology Copyright (c) 2003, 2007-2014 Matteo Frigo -Copyright (c) 2003-2005 Jean-Sebastien Roy (js@jeannot.org) -Copyright (c) 2003-2005 Peter J. Verveer -Copyright (c) 2003-2009 Bruce D. Evans -Copyright (c) 2003-2009 Steven G. Kargl -Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory -Copyright (c) 2003-2011 David Schultz -Copyright (c) 2003-2011 Gustavo Niemeyer -Copyright (c) 2003-2012 SciPy Developers +Copyright (c) 2010-2020 Max-Planck-Society Copyright (c) 2004-2018 Max-Planck-Society author Martin Reinecke -Copyright (c) 2005-2015 Michele Simionato -Copyright (c) 2005-2020 NumPy Developers -Copyright (c) 2006 Estrate, the Netherlands -Copyright (c) 2006 Systems Optimization Laboratory -Copyright (c) 2006 University of Georgia and Pierre G.F. Gerard-Marchant -Copyright (c) 2006-2007 Robert Hetland -Copyright (c) 2006-2013 Alexander Chemeris -Copyright (c) 2007 John Travers +Copyright (c) 2007-2010 Michael G Schwern +Copyright (c) 2002 Michael Ringgaard +Copyright (c) 2018 Michal Horejsek +Copyright (c) 2021 Microsoft Corporation +Copyright (c) 2009 Motorola, Inc +(c) Multiply a Chebyshev +(c) Multiply a Hermite +(c) Multiply a Laguerre +(c) Multiply a Legendre Copyright (c) 2007 Nick Galbreath nickg at modp dot com +Copyright (c) 2013-2022 Nucleic Development Team +copyright 2018-2021 Nucleic team +Copyright (c) 2005-2022 NumPy Developers +copyright 2008-2022 NumPy Developers +Copyright (c) 2011-2023 Open source contributors +Copyright (c) 2009 Oyvind Sean Kinsey, oyvind@kinsey.no +Copyright (c) 2010 Pablo Impallari (www.impallari.com impallari@gmail.com) +Copyright 2007, 2010 Pallets +copyright 2007, 2010 Pallets +Copyright (c) 2001-2003 Patrick K. O'Brien and Contributors +Copyright (c) 2015 Paul Ganssle +Copyright 2017 Paul Ganssle +Copyright (c) 2009-2010, 2013, 2015 Pauli Virtanen +Copyright 1999-2011 Pearu Peterson +Copyright (c) 2019-2020 Peter Bell +Copyright (c) 2003-2005 Peter J. Verveer +Copyright (c) 2009 PiCloud, Inc. +Copyright (c) Piers Lawrence +Copyright (c) 2011-2012 PyData Development Team +copyright Python (Monty) Pictures +Copyright (c) 2001-2021 Python Software Foundation +Copyright (c) 2018 Quansight-Labs +Copyright 1999-2001 Regents of the University of California +Copyright (c) 2012 Regents of the University of California +Copyright (c) 1996-2008 Rice University +Copyright (c) 2005-2014 Rich Felker Copyright (c) 2007 Robert Coup +Copyright (c) 2006-2007 Robert Hetland +COPYRIGHT STRING. Copyright (c) 2007 Sally Copyright (c) 2007 Sally Smith Copyright (c) 2007 Sally Smith Hard-coded +Copyright (c) 2003-2012 SciPy Developers +Copyright (c) 2001-2011 Scilab Enterprises Copyright (c) 2007 Sebastien Fabbro -Copyright (c) 2007-2008 Damian Eads, -Copyright (c) 2007-2009 Justin Bronn -Copyright (c) 2008 Brian M. Clapper , Gael Varoquaux +copyright 2012 Simon Sapin +copyright Simon Sapin and contributors +Copyright (c) 2011-2021 Simon Sapin and contributors +Copyright (c) 2012-2018 Simon Sapin and contributors (see AUTHORS) +Copyright (c) 2009 Stanislaus Madueke +Copyright (c) 2010 Stefano Rivera Copyright (c) 2008 Stephen L. Moshier -Copyright (c) 2008 The Android Open Source Project -Copyright (c) 2008 Yahoo! Inc. -Copyright (c) 2008-2009 Aryeh Leib Taurog -Copyright (c) 2008-2009 Aryeh Leib Taurog, http://www.aryehleib.com -Copyright (c) 2008-2011 AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team -Copyright (c) 2008-2016 California Institute of Technology -Copyright (c) 2008-2017 Eli Bendersky -Copyright (c) 2009 ', join -Copyright (c) 2009 Motorola, Inc -Copyright (c) 2009 Oyvind Sean Kinsey, oyvind@kinsey.no -Copyright (c) 2009 PiCloud, Inc. -Copyright (c) 2009 Stanislaus Madueke -Copyright (c) 2009 by the Jinja Team -Copyright (c) 2009-2020 the -Copyright (c) 2010 Albert Sweigart -Copyright (c) 2010 Bartosz Telenczuk -Copyright (c) 2010 David Fong and Michael Saunders -Copyright (c) 2010 Jordi Gutierrez Hermoso -Copyright (c) 2010 by Armin Ronacher -Copyright (c) 2010, 2013, 2015 Pauli Virtanen -Copyright (c) 2010-2019 Max-Planck-Society -Copyright (c) 2011 Kevin Dunn, Surya K, Pauli Virtanen, the Sphinx team -Copyright (c) 2011-2013 ESN Social Software AB and Jonas Tarnstrom +Copyright (c) 2003-2009 Steven G. Kargl +Copyright (c) 1991-1995 Stichting Mathematisch Centrum Amsterdam, The Netherlands +(c) Copyright 1994-1997 Summer Institute of Linguistics +Copyright (c) 1993, 2004 Sun Microsystems +Copyright (c) 1994 Sun Microsystems, Inc. +Copyright (c) 2018 Sylvain Gubian , Yang Xiang +Copyright (c) 2006 Systems Optimization Laboratory +Copyright (c) 2011 Szabolcs Nagy +Copyright 2007 TeX Users Group +Copyright 2010-2020 The Amiri Project +Copyright (c) 2008 The Android Open Source Project +Copyright 2008 The Bungee Project Copyright (c) 2011-2014 The Dojo Foundation -Copyright (c) 2011-2019 Simon Sapin and contributors (see AUTHORS) -Copyright (c) 2011-2020 Open -Copyright (c) 2012 Lambda Foundry, Inc. -Copyright (c) 2012 Regents of the University of California +Copyright (c) 2012-2019 The Libertinus Project +Copyright (c) 2015-2019 The Mada Project +Copyright (c) 2011-2014 The OpenBLAS Project +Copyright (c) 1988-1993, 1996 The Regents of the University of California +Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory +copyright (c) 2005-2016 The RoboFab Developers +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex) +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex)Roboto +Copyright 2002-2016 The SciPy Developers +Copyright (c) 2016-2024 The Uncertainty Quantification Foundation +Copyright (c) 2000-2013 The University of California Berkeley +Copyright (c) 2006-2013 The University of Colorado Denver +Copyright (c) 1992-2013 The University of Tennessee and The University of Tennessee Research Foundation Copyright (c) 2012-2014 Tomi Pievilainen -Copyright (c) 2012-2019 by Simon Sapin -Copyright (c) 2013 Kenneth L. Ho -Copyright (c) 2013 Matthew Rocklin -Copyright (c) 2013 Nucleic Development Team -Copyright (c) 2013-2018 Kim Davies -Copyright (c) 2013-2020 Simon Sapin and contributors -Copyright (c) 2014 Eric Moore -Copyright (c) 2014-2016 Yaron de Leeuw -Copyright (c) 2015 Paul Ganssle -Copyright (c) 2015 Tyler Reddy, Ross Hemsley, Edd Edmondson, Nikolai Nowaczyk, Joe Pitt-Francis, -Copyright (c) 2015 matplotlib project -Copyright (c) 2015, 2017 dateutil contributors -Copyright (c) 2016 Andi Albrecht +Copyright 1999 Travis Oliphant +Copyright (c) 2002 Travis Oliphant +(c) True, True, False, False Copyright (c) 2016 Tyler Reddy, Copyright (c) 2016 Tyler Reddy, Richard Gowers, and Max Linke, +Copyright (c) 2015 Tyler Reddy, Ross Hemsley, Edd Edmondson, Nikolai Nowaczyk, Joe Pitt-Francis, +Copyright (c) 2009 Type Supply LLC +Copyright (c) 2006 University of Georgia and Pierre G.F. Gerard-Marchant +Copyright (c) 2011 Valentin Ochs +Copyright (c) 2001-2008 Ville Laurikari Copyright (c) 2016 Wenzel Jakob -Copyright (c) 2016-2019 The Uncertainty Quantification Foundation -Copyright (c) 2018 Quansight-Labs -Copyright (c) 2018 Sylvain Gubian , Yang Xiang -Copyright (c) 2019 Kevin Sheppard -Copyright (c) 2019 Peter Bell -Copyright (c) Django Software Foundation and individual contributors -Copyright (c) Piers Lawrence -Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct -Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier -Copyright 1991 Dieter Kraft, FHM -Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 -Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN -Copyright 1999 Travis Oliphant -Copyright 1999-2001 Regents of the University of California -Copyright 1999-2005, 2011 Pearu Peterson +Copyright (c) 2006 Xiaogang Zhang +copyright Y, Andi +Copyright (c) 2008 Yahoo! Inc. +Copyright (c) 2014-2016 Yaron de Leeuw +Copyright 1997-2014 by Agner Fog +copyrighted by Alan Genz Copyright 2000 by Alan Genz -Copyright 2000, 2004 2005Adobe Systems Incorporated -Copyright 2004-2005 by Enthought, Inc. -Copyright 2007-2018 by the Sphinx -Copyright 2008 Anne M. Archibald -Copyright 2008 by Armin Ronacher -Copyright 2010 Pallets -Copyright 2010-2012 D. E. Shaw Research -Copyright 2011 by Armin Ronacher. :license Flask Design -Copyright 2011-2019 Simon Sapin and contributors -Copyright 2012-2019 by Simon Sapin -Copyright 2013 Andrea Gavana -Copyright 2013 by the Jinja -Copyright 2014 Eric W. Moore -Copyright 2014-2019 s -Copyright 2015 Jon Lund Steffensen -Copyright Absoft Corporation +Copyright (c) 2010 by Armin Ronacher +copyrighted 2004 by David M. Cooke Portions copyright (c) 1990 by Elsevier, Inc. +copyrighted by Enthought, Inc. +Copyright 2004-2005 by Enthought, Inc. +Copyright (c) 2011 by Enthought, Inc. +Copyright (c) 2015 by FontTools +Copyright 2017 by Jens Kutilek +Portions copyright (c) 2009-2012 by Khaled Hosny +copyright (c) 2016 by Kozea +Copyright (c) 2010-2011 by Mark Wiebe (mwwiebe@gmail.com) The University of British Columbia Portions copyright (c) 1998-2003 by MicroPress, Inc. -copyright (c) 2009, 2017 by the Jinja Team +Copyright 2014 by P.-G. Martinsson, V. Rokhlin, Y. Shkolnisky, and M. Tygert +Copyright (c) 2010 by Pablo Impallari +Copyright (c) 2010 by Pablo Impallari. www.impallari.com copyright (c) 2010, 2012 by Simon Sapin -copyright (c) 2016 by Kozea -copyright 2008 Armin Ronacher -copyright 2008 f'- datetime.now .year, the pandas development team +Copyright 2012 by Simon Sapin +Copyright (c) 2012 by Simon Sapin +Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier +Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct +Copyright (c) 1994 by Xerox Corporation +(c) Copyright 2008 by http://domain.invalid/> +Copyright (c) 2011 by science+computing +Copyright (c) 2001-2011 by the STI Pub Companies +Copyright 2007-2018 by the Sphinx team +Copyright (c) 1998-2003 by the University of Florida +Copyright 2015 c +Copyright 1997, 2009, 2011 c American Mathematical Society +copyright d, The Uncertainty Quantification Foundation +copyright 2019 dateutil +Copyright (c) 2015, 2017 dateutil contributors +Copyright 2017 dateutil contributors +(c) 2011-2012, 2014 import numpy as np +(c) 2011 import warnings +Copyright jQuery Foundation and other contributors +Copyright (c) 2015 matplotlib project +Copyright (c) 2001 present Python Software Foundation +copyright 2014-2019 s copyright 2008 s, The SciPy community -copyright 2008-2020 The SciPy community -copyright 2010 Pallets -copyright 2012 Simon Sapin -copyright 2013 Surya Kasturi and Pauli Virtanen -copyright 2015 Matplotlib Developers -copyright 2017-2018 NumPy Developers -copyright 2018-2020 Nucleic team -copyright Cephes Math -copyright Django Software Foundation and contributors -copyright Python (Monty) Pictures -copyright Simon Sapin and contributors -copyright Y, Andi -copyright e (c) -copyright u d, The Uncertainty Quantification Foundation -copyrighted 2004 by David M. Cooke -copyrighted by Alan Genz -copyrighted by Enthought, Inc. -Csp self.spmatrix (c) Dsp -David Beazley (http://www.dabeaz.com) Copyright (c) 2017 +Copyright (c) 2009-2020 the sqlparse authors and contributors +(c) 2013 title 0.09734s from fe2.rs.github.com' GitHub, Inc. +Copyright 2019 web-platform-tests contributors X11R4 release, copyright M.I.T. +David Beazley (http://www.dabeaz.com) Copyright (c) 2017 +Csp self.spmatrix (c) Dsp +Gamma (c) Gamma (c) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -666,11 +682,26 @@ THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- +Copyright 1987 A. Volgenant/Amsterdam School of Economics, University of Amsterdam +Copyright 2013 Andrea Gavana +(c) Compute Hessian H +(c) 1988 Date July, +Copyright (c) 2010 David Fong and Michael Saunders +Copyright (c) 2014 Eric Moore +Copyright 2014 Eric W. Moore +Copyright 2002 Gary Strangman +(c) KOKOKOKOKKuKyKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKyK KyKxKzKzKzKzKzKzKzKzKzKzKzKzKyKxKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzK K K KzK K +Copyright (c) 2012 Massachusetts Institute of Technology +Copyright (c) 2018 Sylvain Gubian , Yang Xiang Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory - -Copyright (c) 2003, The Regents of the University of California, through -Lawrence Berkeley National Laboratory (subject to receipt of any required -approvals from the U.S. Dept. of Energy). All rights reserved. +Copyright 2002-2016 The SciPy Developers +Copyright (c) 2016 Wenzel Jakob +Copyright 2004-2005 by Enthought, Inc. +Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier +Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct +copyright 2008 s, The SciPy community +Csp self.spmatrix (c) Dsp +Gamma (c) Gamma (c) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -711,9 +742,9 @@ or derivative works thereof, in binary and source code form. ---- -Copyright (c) 1992-2015 The University of Tennessee and The University of Tennessee Research Foundation -Copyright (c) 2000-2015 The University of California Berkeley -Copyright (c) 2006-2015 The University of Colorado Denver +Copyright (c) 2000-2013 The University of California Berkeley +Copyright (c) 2006-2013 The University of Colorado Denver +Copyright (c) 1992-2013 The University of Tennessee and The University of Tennessee Research Foundation Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -752,64 +783,52 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- -Copyright (C) The Nucleic Development Team - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -3. All advertising materials mentioning features or use of this software -must display the following acknowledgement: This product includes software -developed by the . - -4. Neither the name of the nor the names of its contributors -may be used to endorse or promote products derived from this software -without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----- - +Copyright 1987 A. Volgenant/Amsterdam School of Economics, University of Amsterdam +Copyright 2013 Andrea Gavana +Copyright 2012 Benjamin Sobotta +Copyright (c) 2012 Benjamin Sobotta +(c) Copyright 2008 Bruno Lalande +copyright Cephes Math +Copyright 2013 Christopher Kormanyos +(c) Compute Hessian H (c) Copyright 2001, 2006 Daryle Walker +Copyright 2006-2007 Daryle Walker, Hubert Holin, John Maddock +(c) 1988 Date July, +Copyright (c) 2010 David Fong and Michael Saunders +Copyright (c) 2014 Eric Moore +Copyright 2014 Eric W. Moore +Copyright 2002 Gary Strangman +Copyright 2008 Gautam Sewani +Copyright 2002 H Lohninger, TU Wein (c) Copyright 2003-2005 Hubert Holin -(c) Copyright 2005-2008, 2010 John Maddock -(c) Copyright 2008 Bruno Lalande -(c) Copyright 2011 Paul A. Bristow +Copyright 2006 Johan Rade Copyright (c) 2006 Johan Rade -Copyright (c) 2006 Xiaogang Zhang +(c) Copyright 2005-2008, 2010 John Maddock +Copyright 2005-2013 John Maddock Copyright (c) 2006-2007, 2011 John Maddock -Copyright (c) 2011 Paul A. Bristow To +(c) KOKOKOKOKKuKyKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKyK KyKxKzKzKzKzKzKzKzKzKzKzKzKzKyKxKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzK K K KzK K +Copyright (c) 2012 Massachusetts Institute of Technology +Copyright 2006-2013 Paul A. Bristow +(c) Copyright 2011 Paul A. Bristow Copyright (c) 2011-2012 Paul A. Bristow -Copyright (c) 2012 Benjamin Sobotta -Copyright 1984, 1987, 1992, 2000 by Stephen L. Moshier -Copyright 2002 H Lohninger, TU Wein -Copyright 2005-2013 John Maddock -Copyright 2006 Johan Rade -Copyright 2006 Xiaogang Zhang -Copyright 2006-2007 Daryle Walker, Hubert Holin, John Maddock +Copyright 2011 Paul A. Bristow To +Copyright (c) 2011 Paul A. Bristow To Copyright 2006-2007, 2011 Paul Bristow -Copyright 2006-2013 Paul A. Bristow -Copyright 2008 Gautam Sewani +Copyright (c) 2009 Pauli Virtanen +Copyright (c) 2018 Sylvain Gubian , Yang Xiang +Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory +Copyright 2002-2016 The SciPy Developers Copyright 2008 Thijs van den Berg, -Copyright 2011 Paul A. Bristow To -Copyright 2012 Benjamin Sobotta +Copyright (c) 2016 Wenzel Jakob +Copyright 2006 Xiaogang Zhang +Copyright (c) 2006 Xiaogang Zhang +Copyright 2004-2005 by Enthought, Inc. +Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier +Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct Copyright 2012 ohn Maddock -Copyright 2013 Christopher Kormanyos +copyright 2008 s, The SciPy community +Csp self.spmatrix (c) Dsp +Gamma (c) Gamma (c) Boost Software License - Version 1.0 - August 17th, 2003 @@ -837,289 +856,684 @@ DEALINGS IN THE SOFTWARE. ---- -Copyright (c) 1995-1997 Fredrik Lundh -Copyright (c) 1997 Secret Labs AB -Copyright (c) 2017 Eric Soroos +Copyright (c) 1991 GMV -Attribution 4.0 International +COPYRIGHT NOTICE -======================================================================= +These patterns and the generating sh script are Copyright (c) GMV 1991 -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. +These patterns were developed for internal GMV use and are made public in the hope that they will benefit others. Also, spreading these patterns throughout the Spanish-language TeX community is expected to provide back-benefits to GMV in that it can help keeping GMV in the mainstream of spanish users. -Using Creative Commons Public Licenses +However, this is given for free and WITHOUT ANY WARRANTY. Under no circumstances can Julio Sanchez, GMV, Jos'e A. Ma~nas or any agents or representatives thereof be held responsible for any errors in this software nor for any damages derived from its use, even in case any of the above has been notified of the possibility of such damages. If any such situation arises, you responsible for repair. Use of this software is an explicit acceptance of these conditions. -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. +You can use this software for any purpose. You cannot delete this copyright notice. If you change this software, you must include comments explaining who, when and why. You are kindly requested to send any changes to tex@gmv.es. If you change the generating script, you must include code in it such that any output is clearly labeled as generated by a modified script. Despite the lack of warranty, we would like to hear about any problem you find. Please report problems to tex@gmv.es. - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors +END OF COPYRIGHT NOTICE - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees +---- -======================================================================= +Copyright (c) 1994 Basil K. Malyshev +(c) Tavmjong Bah +(c) Tavmjung Bah +(c) 2003 by Bitstream, Inc. +Copyright (c) 2003 by Bitstream, Inc. +Portions copyright (c) 1990 by Elsevier, Inc. +Portions copyright (c) 1998-2003 by MicroPress, Inc. +Copyright (c) 2006 by Tavmjong Bah +Copyright (c) 2001-2010 by the STI Pub Companies +ECopyright (c) 2003 by Bitstream, Inc. +FCopyright (c) 2003 by Bitstream, Inc. -Creative Commons Attribution 4.0 International Public License +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution 4.0 International Public License ("Public License"). To the -extent this Public License may be interpreted as a contract, You are -granted the Licensed Rights in consideration of Your acceptance of -these terms and conditions, and the Licensor grants You such rights in -consideration of benefits the Licensor receives from making the -Licensed Material available under these terms and conditions. +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. +---- +Creative Commons Legal Code -Section 2 -- Scope. +Attribution 3.0 Unported - a. License grant. + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: +License - a. reproduce and Share the Licensed Material, in whole or - in part; and +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - b. produce, reproduce, and Share Adapted Material. +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. +1. Definitions - 3. Term. The term of this Public License is specified in Section - 6(a). + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined above) for the purposes of this + License. + c. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + d. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + e. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + f. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + g. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + h. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + i. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. - 5. Downstream recipients. +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. - b. Other rights. +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(b), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(b), as requested. + b. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Section 3(b), in the case of an Adaptation, + a credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4 (b) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, at + a minimum such credit will appear, if a credit for all contributing + authors of the Adaptation or Collection appears, then as part of these + credits and in a manner at least as prominent as the credits for the + other contributing authors. For the avoidance of doubt, You may only + use the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under this + License, You may not implicitly or explicitly assert or imply any + connection with, sponsorship or endorsement by the Original Author, + Licensor and/or Attribution Parties, as appropriate, of You or Your + use of the Work, without the separate, express prior written + permission of the Original Author, Licensor and/or Attribution + Parties. + c. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. - 2. Patent and trademark rights are not licensed under this - Public License. +5. Representations, Warranties and Disclaimer - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -Section 3 -- License Conditions. +7. Termination -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. - a. Attribution. +8. Miscellaneous - 1. If You Share the Licensed Material (including in modified - form), You must: + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); +Creative Commons Notice - ii. a copyright notice; + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. - iii. a notice that refers to this Public License; + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of this License. - iv. a notice that refers to the disclaimer of - warranties; + Creative Commons may be contacted at https://creativecommons.org/. - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; +---- - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and +Copyright (c) 2017 Eric Soroos +Copyright (c) 1995-1997 Fredrik Lundh +Copyright (c) 1997 Secret Labs AB - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. +Attribution 4.0 International - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. +======================================================================= - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. +Using Creative Commons Public Licenses +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. -Section 4 -- Sui Generis Database Rights. + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; +======================================================================= - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and +Creative Commons Attribution 4.0 International Public License - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. -For the avoidance of doubt, this Section 4 supplements and does not + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. @@ -1239,8 +1653,6 @@ Creative Commons may be contacted at creativecommons.org. ---- -Copyright 2011 by Enthought, Inc - Creative Commons Legal Code Attribution-ShareAlike 3.0 Unported @@ -1502,921 +1914,3759 @@ subject to and limited by the following restrictions: right under Section 3(b) of this License (right to make Adaptations) but not otherwise. -5. Representations, Warranties and Disclaimer +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. + +---- + +copyright 2020 Just van Rossum, Behdad Esfahbod + +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + + including for purposes of Section 3(b); and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + +---- + +Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM), and CoSMIC(TM) + +ACE(TM),TAO(TM),CIAO(TM),andCoSMIC(TM) (henceforth referred to as "DOC software") are copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, and Vanderbilt University, Copyright (c) 1993-2009, all rights reserved. Since DOC software is open-source, freely available software, you are free to use, modify, copy, and distribute--perpetually and irrevocably--the DOC software source code and object code produced from the source, as well as copy and distribute modified versions of this software. You must, however, include this copyright statement along with any code built using DOC software that you release. No copyright statement needs to be provided if you just ship binary executables of your software products. + +You can use DOC software in commercial and/or binary software releases and are under no obligation to redistribute any of your source code that is built using DOC software. Note, however, that you may not misappropriate the DOC software code, such as copyrighting it yourself or claiming authorship of the DOC software code, in a way that will prevent DOC software from being distributed freely using an open-source development model. You needn't inform anyone that you're using DOC software in your software, though we encourage you to let us know so we can promote your project in the DOC software success stories. + +The ACE, TAO, CIAO, and CoSMIC web sites are maintained by the DOC Group at the Institute for Software Integrated Systems (ISIS) and the Center for Distributed Object Computing of Washington University, St. Louis for the development of open-source software as part of the open-source software community. Submissions are provided by the submitter ``as is'' with no warranties whatsoever, including any warranty of merchantability, noninfringement of third party intellectual property, or fitness for any particular purpose. In no event shall the submitter be liable for any direct, indirect, special, exemplary, punitive, or consequential damages, including without limitation, lost profits, even if advised of the possibility of such damages. Likewise, DOC software is provided as is with no warranties of any kind, including the warranties of design, merchantability, and fitness for a particular purpose, noninfringement, or arising from a course of dealing, usage or trade practice. Washington University, UC Irvine, Vanderbilt University, their employees, and students shall have no liability with respect to the infringement of copyrights, trade secrets or any patents by DOC software or any part thereof. Moreover, in no event will Washington University, UC Irvine, or Vanderbilt University, their employees, or students be liable for any lost revenue or profits or other special, indirect and consequential damages. + +DOC software is provided with no support and without any obligation on the part of Washington University, UC Irvine, Vanderbilt University, their employees, or students to assist in its use, correction, modification, or enhancement. A number of companies around the world provide commercial support for DOC software, however. DOC software is Y2K-compliant, as long as the underlying OS platform is Y2K-compliant. Likewise, DOC software is compliant with the new US daylight savings rule passed by Congress as "The Energy Policy Act of 2005," which established new daylight savings times (DST) rules for the United States that expand DST as of March 2007. Since DOC software obtains time/date and calendaring information from operating systems users will not be affected by the new DST rules as long as they upgrade their operating systems accordingly. + +The names ACE(TM), TAO(TM), CIAO(TM), CoSMIC(TM), Washington University, UC Irvine, and Vanderbilt University, may not be used to endorse or promote products or services derived from this source without express written permission from Washington University, UC Irvine, or Vanderbilt University. This license grants no permission to call products or services derived from this source ACE(TM), TAO(TM), CIAO(TM), or CoSMIC(TM), nor does it grant permission for the name Washington University, UC Irvine, or Vanderbilt University to appear in their names. + +If you have any suggestions, additions, comments, or questions, please let me know. Douglas C. Schmidt + +Back to the ACE home page. + +---- + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2002, 2011 Francesco Zappa Nardelli +Copyright (c) 1989, 1991 Free Software Foundation, Inc. +copyright (c) The FreeType Project (www.freetype.org) +copyright (c) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright (c) 2000-2002 by Francesco Zappa Nardelli +copyrighted by the Free Software Foundation + +The FreeType Project LICENSE +---------------------------- +2006-Jan-27 + +Copyright 1996-2002, 2006 by +David Turner, Robert Wilhelm, and Werner Lemberg + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + http://www.freetype.org + +--- end of FTL.TXT --- + +---- + +Copyright (c) 2020 Free Software Foundation, Inc. +Copyright (c) 2002-2017 and GNU +Copyright (c) 2003 the Initial Developer + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 1, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. + + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + +---- + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2002, 2011 Francesco Zappa Nardelli +Copyright (c) 1989, 1991 Free Software Foundation, Inc. +Copyright (c) 2009 Santhosh Thottingal +copyright (c) The FreeType Project (www.freetype.org) +copyright Wilbert Berendsen, CourtBouillon and contributors +copyright (c) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright (c) 2000-2002 by Francesco Zappa Nardelli +copyrighted by the Free Software Foundation + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +---- + +Copyright (c) 2004-2005 Janis Vilims, jvilims@apollo.lv +Copyright 1998-2002 Maksym Polyakov +Copyright (c) 2009 Santhosh Thottingal +Copyright (c) 2003 the Initial Developer + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 51 Franklin +Street, Fifth Floor, Boston, MA 02110-1301, USA. + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +---- + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2002, 2011 Francesco Zappa Nardelli +Copyright (c) 1989, 1991 Free Software Foundation, Inc. +Copyright (c) 2018 Google LLC +Copyright (c) 2013-2023 Jaume Ortola -- Riurau Editors +Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl +copyright (c) The FreeType Project (www.freetype.org) +copyright (c) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright (c) 2000-2002 by Francesco Zappa Nardelli +copyrighted by the Free Software Foundation + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + +---- + +Copyright (c) 2018 Google LLC +Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR -OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY -KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, -INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, -FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF -LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, -WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION -OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE -LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR -ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES -ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: -7. Termination + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or Collections - from You under this License, however, will not have their licenses - terminated provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will - survive any termination of this License. - b. Subject to the above terms and conditions, the license granted here is - perpetual (for the duration of the applicable copyright in the Work). - Notwithstanding the above, Licensor reserves the right to release the - Work under different license terms or to stop distributing the Work at - any time; provided, however that any such election will not serve to - withdraw this License (or any other license that has been, or is - required to be, granted under the terms of this License), and this - License will continue in full force and effect unless terminated as - stated above. + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or -8. Miscellaneous + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or - a. Each time You Distribute or Publicly Perform the Work or a Collection, - the Licensor offers to the recipient a license to the Work on the same - terms and conditions as the license granted to You under this License. - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor - offers to the recipient a license to the original Work on the same - terms and conditions as the license granted to You under this License. - c. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability of - the remainder of the terms of this License, and without further action - by the parties to this agreement, such provision shall be reformed to - the minimum extent necessary to make such provision valid and - enforceable. - d. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in writing - and signed by the party to be charged with such waiver or consent. - e. This License constitutes the entire agreement between the parties with - respect to the Work licensed here. There are no understandings, - agreements or representations with respect to the Work not specified - here. Licensor shall not be bound by any additional provisions that - may appear in any communication from You. This License may not be - modified without the mutual written agreement of the Licensor and You. - f. The rights granted under, and the subject matter referenced, in this - License were drafted utilizing the terminology of the Berne Convention - for the Protection of Literary and Artistic Works (as amended on - September 28, 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 - and the Universal Copyright Convention (as revised on July 24, 1971). - These rights and subject matter take effect in the relevant - jurisdiction in which the License terms are sought to be enforced - according to the corresponding provisions of the implementation of - those treaty provisions in the applicable national law. If the - standard suite of rights granted under applicable copyright law - includes additional rights not granted under this License, such - additional rights are deemed to be included in the License; this - License is not intended to restrict the license of any rights under - applicable law. + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or -Creative Commons Notice + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. - Creative Commons is not a party to this License, and makes no warranty - whatsoever in connection with the Work. Creative Commons will not be - liable to You or any party on any legal theory for any damages - whatsoever, including without limitation any general, special, - incidental or consequential damages arising in connection to this - license. Notwithstanding the foregoing two (2) sentences, if Creative - Commons has expressly identified itself as the Licensor hereunder, it - shall have all rights and obligations of Licensor. + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. - Except for the limited purpose of indicating to the public that the - Work is licensed under the CCPL, Creative Commons does not authorize - the use by either party of the trademark "Creative Commons" or any - related trademark or logo of Creative Commons without the prior - written consent of Creative Commons. Any permitted use will be in - compliance with Creative Commons' then-current trademark usage - guidelines, as may be published on its website or otherwise made - available upon request from time to time. For the avoidance of doubt, - this trademark restriction does not form part of the License. + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. - Creative Commons may be contacted at https://creativecommons.org/. + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. ----- + 8. Termination. -Attribution-ShareAlike 4.0 International + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). -======================================================================= + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. -Using Creative Commons Public Licenses + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. + 9. Acceptance Not Required for Having Copies. - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. -======================================================================= + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. -Creative Commons Attribution-ShareAlike 4.0 International Public -License + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-ShareAlike 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. -Section 1 -- Definitions. + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. + 12. No Surrender of Others' Freedom. - c. BY-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. + 13. Use with the GNU Affero General Public License. - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. + 14. Revised Versions of this License. - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution and ShareAlike. + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. - k. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. + 15. Disclaimer of Warranty. - l. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - m. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. + 16. Limitation of Liability. + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. -Section 2 -- Scope. + 17. Interpretation of Sections 15 and 16. - a. License grant. + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: + END OF TERMS AND CONDITIONS - a. reproduce and Share the Licensed Material, in whole or - in part; and + How to Apply These Terms to Your New Programs - b. produce, reproduce, and Share Adapted Material. + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. - 3. Term. The term of this Public License is specified in Section - 6(a). + + Copyright (C) - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - 5. Downstream recipients. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. + You should have received a copy of the GNU General Public License + along with this program. If not, see . - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. +Also add information on how to contact you by electronic and paper mail. - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. - b. Other rights. +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. - 2. Patent and trademark rights are not licensed under this - Public License. + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. +As a special exception, if you create a document which uses +this font, and embed this font or unaltered portions of this +font into the document, this font does not by itself cause +the resulting document to be covered by the GNU General Public +License. This exception does not however invalidate any other +reasons why the document might be covered by the GNU General +Public License. If you modify this font, you may extend this +exception to your version of the font, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +---- -Section 3 -- License Conditions. +Copyright (c) 2020 Free Software Foundation, Inc. +Copyright (c) 2012-2023 Jaume Ortola +Copyright (c) 2009 Santhosh Thottingal +Copyright (c) 2002-2017 and GNU -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. - a. Attribution. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. - 1. If You Share the Licensed Material (including in modified - form), You must: +You should have received a copy of the GNU General Public License +along with this program. If not, see . - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - ii. a copyright notice; + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - iii. a notice that refers to this Public License; + Preamble - iv. a notice that refers to the disclaimer of - warranties; + The GNU General Public License is a free, copyleft license for +software and other kinds of works. - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. - b. ShareAlike. + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-SA Compatible License. + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. + The precise terms and conditions for copying, distribution and +modification follow. - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. + TERMS AND CONDITIONS + 0. Definitions. -Section 4 -- Sui Generis Database Rights. + "This License" refers to version 3 of the GNU General Public License. -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. - including for purposes of Section 3(b); and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. + A "covered work" means either the unmodified Program or a work based +on the Program. -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. -Section 5 -- Disclaimer of Warranties and Limitation of Liability. + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + 1. Source Code. - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. -Section 6 -- Term and Termination. + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: + The Corresponding Source for a work in source code form is that +same work. - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or + 2. Basic Permissions. - 2. upon express reinstatement by the Licensor. + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. -Section 7 -- Other Terms and Conditions. + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. + 4. Conveying Verbatim Copies. - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. -Section 8 -- Interpretation. + 5. Conveying Modified Source Versions. - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. -======================================================================= + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. -Creative Commons is not a party to its public -licenses. Notwithstanding, Creative Commons may elect to apply one of -its public licenses to material it publishes and in those instances -will be considered the “Licensor.” The text of the Creative Commons -public licenses is dedicated to the public domain under the CC0 Public -Domain Dedication. Except for the limited purpose of indicating that -material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the -public licenses. + 6. Conveying Non-Source Forms. -Creative Commons may be contacted at creativecommons.org. + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: ----- + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. -The person or persons who have associated work with this document (the "Dedicator" or "Certifier") hereby either (a) certifies that, to the best of his knowledge, the work of authorship identified is in the public domain of the country from which the work is published, or (b) hereby dedicates whatever copyright the dedicators holds in the work of authorship identified below (the "Work") to the public domain. A certifier, moreover, dedicates any copyright interest he may have in the associated work, and for these purposes, is described as a "dedicator" below. + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. -A certifier has taken reasonable steps to verify the copyright status of this work. Certifier recognizes that his good faith efforts may not shield him from liability if in fact the work certified is not in the public domain. + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. -Dedicator makes this dedication for the benefit of the public at large and to the detriment of the Dedicator's heirs and successors. Dedicator intends this dedication to be an overt act of relinquishment in perpetuity of all present and future rights under copyright law, whether vested or contingent, in the Work. Dedicator understands that such relinquishment of all rights includes the relinquishment of all rights to enforce (by lawsuit or otherwise) those copyrights in the Work. + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. -Dedicator recognizes that, once placed in the public domain, the Work may be freely reproduced, distributed, transmitted, used, modified, built upon, or otherwise exploited by anyone for any purpose, commercial or non-commercial, and in any way, including by methods that have not yet been invented or conceived. + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. ----- + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. -Copyright jQuery Foundation and other contributors, https://jquery.org + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. -Creative Commons Legal Code + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. -CC0 1.0 Universal + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS - PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM - THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED - HEREUNDER. - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator -and subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for -the purpose of contributing to a commons of creative, cultural and -scientific works ("Commons") that the public can reliably and without fear -of later claims of infringement build upon, modify, incorporate in other -works, reuse and redistribute as freely as possible in any form whatsoever -and for any purposes, including without limitation commercial purposes. -These owners may contribute to the Commons to promote the ideal of a free -culture and the further production of creative, cultural and scientific -works, or to gain reputation or greater distribution for their Work in -part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any -expectation of additional consideration or compensation, the person -associating CC0 with a Work (the "Affirmer"), to the extent that he or she -is an owner of Copyright and Related Rights in the Work, voluntarily -elects to apply CC0 to the Work and publicly distribute the Work under its -terms, with knowledge of his or her Copyright and Related Rights in the -Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not -limited to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, - communicate, and translate a Work; - ii. moral rights retained by the original author(s) and/or performer(s); -iii. publicity and privacy rights pertaining to a person's image or - likeness depicted in a Work; - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - v. rights protecting the extraction, dissemination, use and reuse of data - in a Work; - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation - thereof, including any amended or successor version of such - directive); and -vii. other similar, equivalent or corresponding rights throughout the - world based on applicable law or treaty, and any national - implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention -of, applicable law, Affirmer hereby overtly, fully, permanently, -irrevocably and unconditionally waives, abandons, and surrenders all of -Affirmer's Copyright and Related Rights and associated claims and causes -of action, whether now known or unknown (including existing as well as -future claims and causes of action), in the Work (i) in all territories -worldwide, (ii) for the maximum duration provided by applicable law or -treaty (including future time extensions), (iii) in any current or future -medium and for any number of copies, and (iv) for any purpose whatsoever, -including without limitation commercial, advertising or promotional -purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each -member of the public at large and to the detriment of Affirmer's heirs and -successors, fully intending that such Waiver shall not be subject to -revocation, rescission, cancellation, termination, or any other legal or -equitable action to disrupt the quiet enjoyment of the Work by the public -as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason -be judged legally invalid or ineffective under applicable law, then the -Waiver shall be preserved to the maximum extent permitted taking into -account Affirmer's express Statement of Purpose. In addition, to the -extent the Waiver is so judged Affirmer hereby grants to each affected -person a royalty-free, non transferable, non sublicensable, non exclusive, -irrevocable and unconditional license to exercise Affirmer's Copyright and -Related Rights in the Work (i) in all territories worldwide, (ii) for the -maximum duration provided by applicable law or treaty (including future -time extensions), (iii) in any current or future medium and for any number -of copies, and (iv) for any purpose whatsoever, including without -limitation commercial, advertising or promotional purposes (the -"License"). The License shall be deemed effective as of the date CC0 was -applied by Affirmer to the Work. Should any part of the License for any -reason be judged legally invalid or ineffective under applicable law, such -partial invalidity or ineffectiveness shall not invalidate the remainder -of the License, and in such case Affirmer hereby affirms that he or she -will not (i) exercise any of his or her remaining Copyright and Related -Rights in the Work or (ii) assert any associated claims and causes of -action with respect to the Work, in either case contrary to Affirmer's -express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - b. Affirmer offers the Work as-is and makes no representations or - warranties of any kind concerning the Work, express, implied, - statutory or otherwise, including without limitation warranties of - title, merchantability, fitness for a particular purpose, non - infringement, or the absence of latent or other defects, accuracy, or - the present or absence of errors, whether or not discoverable, all to - the greatest extent permissible under applicable law. - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without - limitation any person's Copyright and Related Rights in the Work. - Further, Affirmer disclaims responsibility for obtaining any necessary - consents, permissions or other rights required for any use of the - Work. - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to - this CC0 or use of the Work. + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. ----- + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. -As a special exception, if you create a document which uses -this font, and embed this font or unaltered portions of this -font into the document, this font does not by itself cause -the resulting document to be covered by the GNU General Public -License. This exception does not however invalidate any other -reasons why the document might be covered by the GNU General -Public License. If you modify this font, you may extend this -exception to your version of the font, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. + 7. Additional Terms. ----- + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. -Copyright (c) 2002-2017 and GNU -Copyright (c) 2003 the Initial Developer -Copyright (c) 2018 Google LLC -Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free Software -Foundation; either version 1, or (at your option) any later version. + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: -This program is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU General Public License for more details. + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or -You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. - Preamble + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. + 8. Termination. - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. - The precise terms and conditions for copying, distribution and -modification follow. + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + 9. Acceptance Not Required for Having Copies. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". + 10. Automatic Licensing of Downstream Recipients. - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). + 11. Patents. - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. + 12. No Surrender of Others' Freedom. - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. + 13. Use with the GNU Affero General Public License. - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + 14. Revised Versions of this License. - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. - NO WARRANTY + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. + 15. Disclaimer of Warranty. - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - END OF TERMS AND CONDITIONS + 16. Limitation of Liability. + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. - Appendix: How to Apply These Terms to Your New Programs + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. - Copyright (C) 19yy + Copyright (C) - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -2424,682 +5674,672 @@ the exclusion of warranty; and each file should have at least the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". - , 1 April 1989 - Ty Coon, President of Vice + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. -That's all there is to it! + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. ---- -Copyright (c) 1989, 1991 Free Software Foundation, Inc. -copyrighted by the Free Software Foundation - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors +Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono - Preamble +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. +You should have received a copy of the GNU General Public License +along with this program. If not, see . - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. + Preamble - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. + The GNU General Public License is a free, copyleft license for +software and other kinds of works. - The precise terms and conditions for copying, distribution and -modification follow. + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. + The precise terms and conditions for copying, distribution and +modification follow. - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) + TERMS AND CONDITIONS -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. + 0. Definitions. -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. + "This License" refers to version 3 of the GNU General Public License. -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, + A "covered work" means either the unmodified Program or a work based +on the Program. - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. + 1. Source Code. - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. + The Corresponding Source for a work in source code form is that +same work. -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. + 2. Basic Permissions. - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - NO WARRANTY + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. + 4. Conveying Verbatim Copies. - END OF TERMS AND CONDITIONS + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. - How to Apply These Terms to Your New Programs + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. + 5. Conveying Modified Source Versions. - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: - - Copyright (C) + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. -Also add information on how to contact you by electronic and paper mail. + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + 6. Conveying Non-Source Forms. - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. - , 1 April 1989 - Ty Coon, President of Vice + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. ----- + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). -Copyright (c) 2006 Tim Cera timcera@earthlink.net -Copyright (c) 2009 by the Jinja Team -Copyright 2008 Wilbert Berendsen -Copyright 2012-2013 Guillaume Ayoub + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free Software -Foundation; either version 2 of the License, or (at your option) any later -version. + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. -This program is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU General Public License for more details. + 7. Additional Terms. -You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., 51 Franklin -Street, Fifth Floor, Boston, MA 02110-1301, USA. + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: - Preamble + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. - The precise terms and conditions for copying, distribution and -modification follow. + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + 8. Termination. - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: + 9. Acceptance Not Required for Having Copies. - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. + 10. Automatic Licensing of Downstream Recipients. - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. + 11. Patents. - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. + 12. No Surrender of Others' Freedom. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or + If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. + 13. Use with the GNU Affero General Public License. -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. + 14. Revised Versions of this License. - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. - NO WARRANTY + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. + 15. Disclaimer of Warranty. - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. END OF TERMS AND CONDITIONS @@ -3111,15 +6351,15 @@ free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -3127,47 +6367,68 @@ the "copyright" line and a pointer to where the full notice is found. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + You should have received a copy of the GNU General Public License + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. - , 1 April 1989 - Ty Coon, President of Vice + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. +As a special exception, if you create a document which uses +this font, and embed this font or unaltered portions of this +font into the document, this font does not by itself cause +the resulting document to be covered by the GNU General Public +License. This exception does not however invalidate any other +reasons why the document might be covered by the GNU General +Public License. If you modify this font, you may extend this +exception to your version of the font, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. ---- -Copyright (c) 2018 Google LLC -Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono +Copyright (c) 2002-2017 Free Software Foundation, Inc. +Copyright (c) 2007, 2009 Free Software Foundation, Inc. +Copyright (c) 2011-2014 The OpenBLAS Project +Copyright (c) 2000-2013 The University of California Berkeley +Copyright (c) 2006-2013 The University of Colorado Denver +Copyright (c) 1992-2013 The University of Tennessee and The University of Tennessee Research Foundation + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -3844,729 +7105,763 @@ the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ----- - -Copyright (c) 1995-1998, 2000-2010, 2020 Free Software Foundation, Inc. -Copyright (c) 2009 Zarko Zivanov - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. +GCC RUNTIME LIBRARY EXCEPTION - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. +Version 3.1, 31 March 2009 - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. +Copyright (C) 2009 Free Software Foundation, Inc. - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. +0. Definitions. - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. - The precise terms and conditions for copying, distribution and -modification follow. +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. - TERMS AND CONDITIONS +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. - 0. Definitions. +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. - "This License" refers to version 3 of the GNU General Public License. +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. +1. Grant of Additional Permission. - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. - A "covered work" means either the unmodified Program or a work based -on the Program. +2. No Weakening of GCC Copyleft. - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. +---- - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. +Copyright 1984, 1987 Adobe Systems, Inc. +Copyright (c) 1987 Adobe Systems, Inc. +Portions Copyright 1988 Digital Equipment Corp. +Portions Copyright 1988 Digital Equipment Corporation - 1. Source Code. +Permission to use, copy, modify and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies, and +that both that copyright notice and this permission notice +appear in supporting documentation, and that the name of copyright +holder or related entities not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. Copyright holder makes no representations about +the suitability of this software for any purpose. It is provided "as is" +without express or implied warranty. - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. +Copyright holder DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL copyright holder BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. +---- - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. +Copyright 1995 Trinity College Computing Center - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. This software is provided "as is" without express or +implied warranty. - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. +---- - The Corresponding Source for a work in source code form is that -same work. +copyright (c) 1991-2020 Thomas G. Lane, Guido Vollbeding + +LEGAL ISSUES +============ + +In plain English: + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-1998, Thomas G. Lane. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + + +ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, +sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. +ansi2knr.c is NOT covered by the above copyright and conditions, but instead +by the usual distribution terms of the Free Software Foundation; principally, +that you must include source code if you redistribute it. (See the file +ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part +of any program generated from the IJG code, this does not limit you more than +the foregoing paragraphs do. + +The Unix configuration script "configure" was produced with GNU Autoconf. +It is copyright by the Free Software Foundation but is freely distributable. +The same holds for its supporting scripts (config.guess, config.sub, +ltconfig, ltmain.sh). Another support script, install-sh, is copyright +by M.I.T. but is also freely distributable. + +It appears that the arithmetic coding option of the JPEG spec is covered by +patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot +legally be used without obtaining one or more licenses. For this reason, +support for arithmetic coding has been removed from the free JPEG software. +(Since arithmetic coding provides only a marginal gain over the unpatented +Huffman mode, it is unlikely that very many implementations will support it.) +So far as we are aware, there are no patent restrictions on the remaining +code. + +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent, GIF reading support has +been removed altogether, and the GIF writer has been simplified to produce +"uncompressed GIFs". This technique does not use the LZW algorithm; the +resulting GIF files are larger than usual, but are readable by all standard +GIF decoders. + +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." - 2. Basic Permissions. +---- - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. +Copyright (c) 2016 Coresec Systems AB +(c) 2009 Dennis Kaarsemaker +Copyright (c) Dnspython Contributors +Copyright (c) Google Inc. +Copyright (c) 2000-2001 Internet Software Consortium +Copyright (c) 2001-2017 Nominum, Inc. +Copyright (c) 2014-2015 Red Hat, Inc. + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. +---- - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. +copyright 2012-2018 Armin Rigo, Maciej Fijalkowski - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. +The Software shall be used for Good, not Evil. - 4. Conveying Verbatim Copies. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. +---- - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 - 5. Conveying Modified Source Versions. + Copyright (C) 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. + Preamble - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. - 6. Conveying Non-Source Forms. + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. - 7. Additional Terms. + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or + a) The modified work must itself be a software library. - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. - 8. Termination. +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. - 9. Acceptance Not Required for Having Copies. + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. - 10. Automatic Licensing of Downstream Recipients. + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. - 11. Patents. + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. - 12. No Surrender of Others' Freedom. + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. - 13. Use with the GNU Affero General Public License. + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. - 14. Revised Versions of this License. + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. - 15. Disclaimer of Warranty. + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. - 16. Limitation of Liability. + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. + NO WARRANTY - 17. Interpretation of Sections 15 and 16. + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs + How to Apply These Terms to Your New Libraries - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. - + Copyright (C) - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. + , 1 April 1990 + Ty Coon, President of Vice - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. +That's all there is to it! ---- -Copyright (C) Alex Clark (PIL Fork Author) -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright 2000 by Object Craft P/L, Melbourne, Australia -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. +Copyright Agreement , mis lubab tema tood OpenOffice.org koosseisus kasutada. Originaalfail on saadaval asukohas http://www.cs.ut.ee/~tqnu/eehyph.tex +Copyright (c) 2003-2019 Federico Di Gregorio +(c) 1991, 1999 Free Software Foundation, Inc. +Copyright (c) 1991, 1999 Free Software Foundation, Inc. +Copyright (c) 2005 Friedel Wolff +Copyright (c) 2004-2005 Janis Vilims, jvilims@apollo.lv +Copyright (c) 2009 Santhosh Thottingal +Copyright (c) 2020-2021 The Psycopg Team +Copyright (c) 2002 Travis Oliphant +copyrighted by the Free Software Foundation +Copyright (c) 2003 the Initial Developer -Permission to use, copy, modify and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies, and -that both that copyright notice and this permission notice -appear in supporting documentation, and that the name of copyright -holder or related entities not be used in advertising or publicity -pertaining to distribution of the software without specific, written -prior permission. Copyright holder makes no representations about -the suitability of this software for any purpose. It is provided "as is" -without express or implied warranty. +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Library General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) any +later version. -Copyright holder DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL copyright holder BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +This library is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU Library General Public License for more details. ----- +You should have received a copy of the GNU Library General Public License along +with this library; if not, write to the Free Software Foundation, Inc., 51 +Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -5052,36 +8347,27 @@ That's all there is to it! ---- -Copyright (C) Daniel Blanchard -Copyright (c) 2009 Pierre Raybaut +Copyright (c) Ahmed TAHRI Ousret (https://github.com/Ousret) +(c) 2012 Denny Vrandecic (http://simia.net/letters/) +Copyright (c) 1991, 1999 Free Software Foundation, Inc. +Copyright (c) 2005, 2007 Friedel Wolff Copyright (c) 2018 Google LLC +Copyright (c) 2004-2005 Janis Vilims, jvilims@apollo.lv Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono - -This library is free software; you can redistribute it and/or modify it under -the terms of the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your option) any -later version. - -This library is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - -You should have received a copy of the GNU Library General Public License along -with this library; if not, write to the Free Software Foundation, Inc., 51 -Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. +copyright Wilbert Berendsen, CourtBouillon and contributors +copyrighted by the Free Software Foundation - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 - Copyright (C) 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] Preamble @@ -5090,98 +8376,112 @@ freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - GNU LIBRARY GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. @@ -5220,6 +8520,7 @@ Library. and you may at your option offer warranty protection in exchange for a fee. + 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 @@ -5278,6 +8579,7 @@ ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. + Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. @@ -5329,7 +8631,8 @@ distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. - 6. As an exception to the Sections above, you may also compile or + + 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit @@ -5356,23 +8659,31 @@ of these things: Library will not necessarily be able to recompile the application to use the modified definitions.) - b) Accompany the work with a written offer, valid for at + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. - c) If distribution of the work is made by offering access to copy + d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. - d) Verify that the user has already received a copy of these + e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. @@ -5383,6 +8694,7 @@ accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. + 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined @@ -5421,9 +8733,10 @@ Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to +You are not responsible for enforcing compliance by third parties with this License. + 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or @@ -5464,7 +8777,7 @@ excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. +versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. @@ -5476,6 +8789,7 @@ the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. + 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is @@ -5510,6 +8824,7 @@ DAMAGES. END OF TERMS AND CONDITIONS + How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest @@ -5527,16 +8842,16 @@ convey the exclusion of warranty; and each file should have at least the Copyright (C) This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public + modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. + version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA @@ -5556,9 +8871,9 @@ That's all there is to it! ---- +Copyright Agreement , mis lubab tema tood OpenOffice.org koosseisus kasutada. Originaalfail on saadaval asukohas http://www.cs.ut.ee/~tqnu/eehyph.tex +(c) 1991, 1999 Free Software Foundation, Inc. Copyright (c) 1991, 1999 Free Software Foundation, Inc. -Copyright (c) 2005, 2007 Friedel Wolff -copyright 2015 Mark Pilgrim, Dan Blanchard, Ian Cordasco copyrighted by the Free Software Foundation GNU LESSER GENERAL PUBLIC LICENSE @@ -6073,24 +9388,45 @@ necessary. Here is a sample; alter the names: That's all there is to it! +Qwt License +Version 1.0, January 1, 2003 +The Qwt library and included programs are provided under the terms +of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following +exceptions: + + 1. Widgets that are subclassed from Qwt widgets do not + constitute a derivative work. + + 2. Static linking of applications and widgets to the + Qwt library does not constitute a derivative work + and does not require the author to provide source + code for the application or widget, use the shared + Qwt libraries, or link their applications or + widgets against a user-supplied version of Qwt. + If you link the application or widget to a modified + version of Qwt, then the changes to Qwt must be + provided under the terms of the LGPL in sections + 1, 2, and 4. + + 3. You do not have to provide a copy of the Qwt license + with programs that are linked to the Qwt library, nor + do you have to identify the Qwt license in your + program or documentation as required by section 6 + of the LGPL. + However, programs must still identify their use of Qwt. + The following example statement can be included in user + documentation to satisfy this requirement: + [program/widget] is based in part on the work of + the Qwt project (http://qwt.sf.net). + ---- -Copyright (C) Daniel Blanchard -Copyright (C) Federico Di Gregorio -Copyright (c) 1998, 2001, 2005 the Initial Developer -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright (c) 2005 Friedel Wolff -Copyright (c) 2005 Nilton Volpato -Copyright (c) 2008-2009 Santhosh Thottingal +Copyright (c) 2005, 2007 Friedel Wolff Copyright (c) 2018 Google LLC Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono -Copyright 2008 Wilbert Berendsen -Copyright 2012-2013 Guillaume Ayoub -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. +Copyright (c) 2009 Santhosh Thottingal +Copyright (c) 2008-2009 Santhosh Thottingal +Copyright (c) 2003 the Initial Developer This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free @@ -6620,9 +9956,11 @@ That's all there is to it! ---- -Copyright (c) 2007 Free Software Foundation, Inc. +copyright 2001-2021 Federico Di Gregorio, Daniele Varrazzo, The Psycopg Team +Copyright (c) 2007 Free Software Foundation, Inc. +Copyright (c) 2013-2023 Jaume Ortola -- Riurau Editors Copyright 2010, 2013 by Daniele Varrazzo -copyright 2001-2020 Federico Di Gregorio, Daniele Varrazzo, The Psycopg Team +Copyright (c) 2008-2013 por/by Raimundo Santos Moura GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -6792,17 +10130,11 @@ Library. ---- -Copyright (C) Guillaume Ayoub -Copyright (c) 2001-2019 Federico Di Gregorio -Copyright (c) 2006-2019 Johan Dahlin -Copyright (c) 2007-2019 Daniele Varrazzo -Copyright (c) 2008 Canonical Ltd. -Copyright (c) 2008-2019 James Henstridge -Copyright (c) 2010-2019 Jan Urbanski -Copyright (c) 2013-2019 Matthew Woodcraft -Copyright (c) 2017 My Karlsson -Copyright (c) 2018-2019 Joyent, Inc. -Copyright (c) 2020 The Psycopg Team +Copyright (c) 2010-2019 Daniele Varrazzo +Copyright (c) 2003-2019 Federico Di Gregorio +Copyright (c) 2013 Niklas Johansson +Copyright (c) 2009 Santhosh Thottingal +Copyright (c) 2020-2021 The Psycopg Team This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free @@ -6985,7 +10317,17 @@ Library. ---- -Copyright (C) Federico Di Gregorio +Copyright (c) 2008 Canonical Ltd. +Copyright (c) 2007-2019 Daniele Varrazzo +Copyright (c) 2001-2019 Federico Di Gregorio +Copyright (c) 2008-2019 James Henstridge +Copyright (c) 2010-2019 Jan Urbanski +Copyright (c) 2006-2019 Johan Dahlin +Copyright (c) 2018-2019 Joyent, Inc. +Copyright (c) 2013-2019 Matthew Woodcraft +Copyright (c) 2017 My Karlsson +Copyright (c) 2001-2019 Python Software Foundation +Copyright (c) 2020-2021 The Psycopg Team This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free @@ -7166,421 +10508,201 @@ apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. -Special exception for linking OpenVPN with OpenSSL: - -In addition, as a special exception, OpenVPN Technologies, Inc. gives permission -to link the code of this program with the OpenSSL Library (or with modified -versions of OpenSSL that use the same license as OpenSSL), and distribute linked -combinations including the two. You must obey the GNU General Public License in -all respects for all of the code used other than OpenSSL. If you modify this -file, you may extend this exception to your version of the file, but you are not -obligated to do so. If you do not wish to do so, delete this exception statement -from your version. - ---- -Copyright (c) 1988 by Theo Jurriens -Copyright (c) 1989-2004 Johannes Braams -Copyright (c) 1990-2004, 2723 by Johannes Braams texniek at braams.cistron.nl Kersengaarde 33 BP Zoetermeer NL - -The LaTeX Project Public License -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -LPPL Version 1.3a 2004-10-01 - -Copyright 1999 2002-04 LaTeX3 Project - Everyone is allowed to distribute verbatim copies of this - license document, but modification of it is not allowed. - - -PREAMBLE -======== -The LaTeX Project Public License (LPPL) is the primary license under -which the the LaTeX kernel and the base LaTeX packages are distributed. - -You may use this license for any work of which you hold the copyright -and which you wish to distribute. This license may be particularly -suitable if your work is TeX-related (such as a LaTeX package), but -you may use it with small modifications even if your work is unrelated -to TeX. - -The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', -below, gives instructions, examples, and recommendations for authors -who are considering distributing their works under this license. - -This license gives conditions under which a work may be distributed -and modified, as well as conditions under which modified versions of -that work may be distributed. - -We, the LaTeX3 Project, believe that the conditions below give you -the freedom to make and distribute modified versions of your work -that conform with whatever technical specifications you wish while -maintaining the availability, integrity, and reliability of -that work. If you do not see how to achieve your goal while -meeting these conditions, then read the document `cfgguide.tex' -and `modguide.tex' in the base LaTeX distribution for suggestions. - - -DEFINITIONS -=========== - -In this license document the following terms are used: - - `Work' - Any work being distributed under this License. - - `Derived Work' - Any work that under any applicable law is derived from the Work. - - `Modification' - Any procedure that produces a Derived Work under any applicable - law -- for example, the production of a file containing an - original file associated with the Work or a significant portion of - such a file, either verbatim or with modifications and/or - translated into another language. - - `Modify' - To apply any procedure that produces a Derived Work under any - applicable law. - - `Distribution' - Making copies of the Work available from one person to another, in - whole or in part. Distribution includes (but is not limited to) - making any electronic components of the Work accessible by - file transfer protocols such as FTP or HTTP or by shared file - systems such as Sun's Network File System (NFS). - - `Compiled Work' - A version of the Work that has been processed into a form where it - is directly usable on a computer system. This processing may - include using installation facilities provided by the Work, - transformations of the Work, copying of components of the Work, or - other activities. Note that modification of any installation - facilities provided by the Work constitutes modification of the Work. - - `Current Maintainer' - A person or persons nominated as such within the Work. If there is - no such explicit nomination then it is the `Copyright Holder' under - any applicable law. - - `Base Interpreter' - A program or process that is normally needed for running or - interpreting a part or the whole of the Work. - A Base Interpreter may depend on external components but these - are not considered part of the Base Interpreter provided that each - external component clearly identifies itself whenever it is used - interactively. Unless explicitly specified when applying the - license to the Work, the only applicable Base Interpreter is a - "LaTeX-Format". - - - -CONDITIONS ON DISTRIBUTION AND MODIFICATION -=========================================== -1. Activities other than distribution and/or modification of the Work -are not covered by this license; they are outside its scope. In -particular, the act of running the Work is not restricted and no -requirements are made concerning any offers of support for the Work. - -2. You may distribute a complete, unmodified copy of the Work as you -received it. Distribution of only part of the Work is considered -modification of the Work, and no right to distribute such a Derived -Work may be assumed under the terms of this clause. - -3. You may distribute a Compiled Work that has been generated from a -complete, unmodified copy of the Work as distributed under Clause 2 -above, as long as that Compiled Work is distributed in such a way that -the recipients may install the Compiled Work on their system exactly -as it would have been installed if they generated a Compiled Work -directly from the Work. - -4. If you are the Current Maintainer of the Work, you may, without -restriction, modify the Work, thus creating a Derived Work. You may -also distribute the Derived Work without restriction, including -Compiled Works generated from the Derived Work. Derived Works -distributed in this manner by the Current Maintainer are considered to -be updated versions of the Work. - -5. If you are not the Current Maintainer of the Work, you may modify -your copy of the Work, thus creating a Derived Work based on the Work, -and compile this Derived Work, thus creating a Compiled Work based on -the Derived Work. - -6. If you are not the Current Maintainer of the Work, you may -distribute a Derived Work provided the following conditions are met -for every component of the Work unless that component clearly states -in the copyright notice that it is exempt from that condition. Only -the Current Maintainer is allowed to add such statements of exemption -to a component of the Work. - - a. If a component of this Derived Work can be a direct replacement - for a component of the Work when that component is used with the - Base Interpreter, then, wherever this component of the Work - identifies itself to the user when used interactively with that - Base Interpreter, the replacement component of this Derived Work - clearly and unambiguously identifies itself as a modified version - of this component to the user when used interactively with that - Base Interpreter. - - b. Every component of the Derived Work contains prominent notices - detailing the nature of the changes to that component, or a - prominent reference to another file that is distributed as part - of the Derived Work and that contains a complete and accurate log - of the changes. - - c. No information in the Derived Work implies that any persons, - including (but not limited to) the authors of the original version - of the Work, provide any support, including (but not limited to) - the reporting and handling of errors, to recipients of the - Derived Work unless those persons have stated explicitly that - they do provide such support for the Derived Work. - - d. You distribute at least one of the following with the Derived Work: - - 1. A complete, unmodified copy of the Work; - if your distribution of a modified component is made by - offering access to copy the modified component from a - designated place, then offering equivalent access to copy - the Work from the same or some similar place meets this - condition, even though third parties are not compelled to - copy the Work along with the modified component; - - 2. Information that is sufficient to obtain a complete, unmodified - copy of the Work. +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free +Software Foundation; either version 3.0 of the License, or (at your option) any +later version. -7. If you are not the Current Maintainer of the Work, you may -distribute a Compiled Work generated from a Derived Work, as long as -the Derived Work is distributed to all recipients of the Compiled -Work, and as long as the conditions of Clause 6, above, are met with -regard to the Derived Work. +This library is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -8. The conditions above are not intended to prohibit, and hence do -not apply to, the modification, by any method, of any component so that it -becomes identical to an updated version of that component of the Work as -it is distributed by the Current Maintainer under Clause 4, above. +You should have received a copy of the GNU Lesser General Public License along +with this library; if not, write to the Free Software Foundation, Inc., 51 +Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -9. Distribution of the Work or any Derived Work in an alternative -format, where the Work or that Derived Work (in whole or in part) is -then produced by applying some process to that format, does not relax or -nullify any sections of this license as they pertain to the results of -applying that process. + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 -10. a. A Derived Work may be distributed under a different license - provided that license itself honors the conditions listed in - Clause 6 above, in regard to the Work, though it does not have - to honor the rest of the conditions in this license. + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - b. If a Derived Work is distributed under this license, that - Derived Work must provide sufficient documentation as part of - itself to allow each recipient of that Derived Work to honor the - restrictions in Clause 6 above, concerning changes from the Work. -11. This license places no restrictions on works that are unrelated to -the Work, nor does this license place any restrictions on aggregating -such works with the Work by any means. + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. -12. Nothing in this license is intended to, or may be used to, prevent -complete compliance by all parties with all applicable laws. + 0. Additional Definitions. + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. -NO WARRANTY -=========== -There is no warranty for the Work. Except when otherwise stated in -writing, the Copyright Holder provides the Work `as is', without -warranty of any kind, either expressed or implied, including, but not -limited to, the implied warranties of merchantability and fitness for -a particular purpose. The entire risk as to the quality and performance -of the Work is with you. Should the Work prove defective, you -assume the cost of all necessary servicing, repair, or correction. + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. -In no event unless required by applicable law or agreed to in writing -will The Copyright Holder, or any author named in the components of -the Work, or any other party who may distribute and/or modify the Work -as permitted above, be liable to you for damages, including any -general, special, incidental or consequential damages arising out of -any use of the Work or out of inability to use the Work (including, -but not limited to, loss of data, data being rendered inaccurate, or -losses sustained by anyone as a result of any failure of the Work to -operate with any other programs), even if the Copyright Holder or said -author or said other party has been advised of the possibility of such -damages. + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". -MAINTENANCE OF THE WORK -======================= -The Work has the status `author-maintained' if the Copyright Holder -explicitly and prominently states near the primary copyright notice in -the Work that the Work can only be maintained by the Copyright Holder -or simply that is `author-maintained'. + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. -The Work has the status `maintained' if there is a Current Maintainer -who has indicated in the Work that they are willing to receive error -reports for the Work (for example, by supplying a valid e-mail -address). It is not required for the Current Maintainer to acknowledge -or act upon these error reports. + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. -The Work changes from status `maintained' to `unmaintained' if there -is no Current Maintainer, or the person stated to be Current -Maintainer of the work cannot be reached through the indicated means -of communication for a period of six months, and there are no other -significant signs of active maintenance. + 1. Exception to Section 3 of the GNU GPL. -You can become the Current Maintainer of the Work by agreement with -any existing Current Maintainer to take over this role. + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. -If the Work is unmaintained, you can become the Current Maintainer of -the Work through the following steps: + 2. Conveying Modified Versions. - 1. Make a reasonable attempt to trace the Current Maintainer (and - the Copyright Holder, if the two differ) through the means of - an Internet or similar search. + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: - 2. If this search is successful, then enquire whether the Work - is still maintained. + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or - a. If it is being maintained, then ask the Current Maintainer - to update their communication data within one month. + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. - b. If the search is unsuccessful or no action to resume active - maintenance is taken by the Current Maintainer, then announce - within the pertinent community your intention to take over - maintenance. (If the Work is a LaTeX work, this could be - done, for example, by posting to comp.text.tex.) + 3. Object Code Incorporating Material from Library Header Files. - 3a. If the Current Maintainer is reachable and agrees to pass - maintenance of the Work to you, then this takes effect - immediately upon announcement. + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: - b. If the Current Maintainer is not reachable and the Copyright - Holder agrees that maintenance of the Work be passed to you, - then this takes effect immediately upon announcement. + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. - 4. If you make an `intention announcement' as described in 2b. above - and after three months your intention is challenged neither by - the Current Maintainer nor by the Copyright Holder nor by other - people, then you may arrange for the Work to be changed so as - to name you as the (new) Current Maintainer. + b) Accompany the object code with a copy of the GNU GPL and this license + document. - 5. If the previously unreachable Current Maintainer becomes - reachable once more within three months of a change completed - under the terms of 3b) or 4), then that Current Maintainer must - become or remain the Current Maintainer upon request provided - they then update their communication data within one month. + 4. Combined Works. -A change in the Current Maintainer does not, of itself, alter the fact -that the Work is distributed under the LPPL license. + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: -If you become the Current Maintainer of the Work, you should -immediately provide, within the Work, a prominent and unambiguous -statement of your status as Current Maintainer. You should also -announce your new status to the same pertinent community as -in 2b) above. + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. -WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE -====================================================== -This section contains important instructions, examples, and -recommendations for authors who are considering distributing their -works under this license. These authors are addressed as `you' in -this section. + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. -Choosing This License or Another License ----------------------------------------- -If for any part of your work you want or need to use *distribution* -conditions that differ significantly from those in this license, then -do not refer to this license anywhere in your work but, instead, -distribute your work under a different license. You may use the text -of this license as a model for your own license, but your license -should not refer to the LPPL or otherwise give the impression that -your work is distributed under the LPPL. + d) Do one of the following: -The document `modguide.tex' in the base LaTeX distribution explains -the motivation behind the conditions of this license. It explains, -for example, why distributing LaTeX under the GNU General Public -License (GPL) was considered inappropriate. Even if your work is -unrelated to LaTeX, the discussion in `modguide.tex' may still be -relevant, and authors intending to distribute their works under any -license are encouraged to read it. + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. -A Recommendation on Modification Without Distribution ------------------------------------------------------ -It is wise never to modify a component of the Work, even for your own -personal use, without also meeting the above conditions for -distributing the modified component. While you might intend that such -modifications will never be distributed, often this will happen by -accident -- you may forget that you have modified that component; or -it may not occur to you when allowing others to access the modified -version that you are thus distributing it and violating the conditions -of this license in ways that could have legal implications and, worse, -cause problems for the community. It is therefore usually in your -best interest to keep your copy of the Work identical with the public -one. Many works provide ways to control the behavior of that work -without altering any of its licensed components. + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. -How to Use This License ------------------------ -To use this license, place in each of the components of your work both -an explicit copyright notice including your name and the year the work -was authored and/or last substantially modified. Include also a -statement that the distribution and/or modification of that -component is constrained by the conditions in this license. + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) -Here is an example of such a notice and statement: + 5. Combined Libraries. - %% pig.dtx - %% Copyright 2003 M. Y. Name - % - % This work may be distributed and/or modified under the - % conditions of the LaTeX Project Public License, either version 1.3 - % of this license or (at your option) any later version. - % The latest version of this license is in - % http://www.latex-project.org/lppl.txt - % and version 1.3 or later is part of all distributions of LaTeX - % version 2003/12/01 or later. - % - % This work has the LPPL maintenance status "maintained". - % - % This Current Maintainer of this work is M. Y. Name. - % - % This work consists of the files pig.dtx and pig.ins - % and the derived file pig.sty. + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: -Given such a notice and statement in a file, the conditions -given in this license document would apply, with the `Work' referring -to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being -generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' -referring to any "LaTeX-Format", and both `Copyright Holder' and -`Current Maintainer' referring to the person `M. Y. Name'. + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. -If you do not want the Maintenance section of LPPL to apply to your -Work, change "maintained" above into "author-maintained". -However, we recommend that you use "maintained" as the Maintenance -section was added in order to ensure that your Work remains useful to -the community even when you can no longer maintain and support it -yourself. + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + 6. Revised Versions of the GNU Lesser General Public License. -Important Recommendations -------------------------- -Defining What Constitutes the Work + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. - The LPPL requires that distributions of the Work contain all the - files of the Work. It is therefore important that you provide a - way for the licensee to determine which files constitute the Work. - This could, for example, be achieved by explicitly listing all the - files of the Work near the copyright notice of each file or by - using a line such as: + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. - % This work consists of all files listed in manifest.txt. + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. - in that place. In the absence of an unequivocal list it might be - impossible for the licensee to determine what is considered by you - to comprise the Work and, in such a case, the licensee would be - entitled to make reasonable conjectures as to which files comprise - the Work. +Special exception for linking OpenVPN with OpenSSL: + +In addition, as a special exception, OpenVPN Technologies, Inc. gives permission +to link the code of this program with the OpenSSL Library (or with modified +versions of OpenSSL that use the same license as OpenSSL), and distribute linked +combinations including the two. You must obey the GNU General Public License in +all respects for all of the code used other than OpenSSL. If you modify this +file, you may extend this exception to your version of the file, but you are not +obligated to do so. If you do not wish to do so, delete this exception statement +from your version. ---- -Copyright 2007-2009 by Batmunkh Dorjgotov email bataak at gmail.com +Copyright 2007-2009 by Batmunkh Dorjgotov The LaTeX Project Public License =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -7979,744 +11101,374 @@ completely different task), then clauses 6b and 6d shall not apply. Important Recommendations -------------------------- - - Defining What Constitutes the Work - - The LPPL requires that distributions of the Work contain all the - files of the Work. It is therefore important that you provide a - way for the licensee to determine which files constitute the Work. - This could, for example, be achieved by explicitly listing all the - files of the Work near the copyright notice of each file or by - using a line such as: - - % This work consists of all files listed in manifest.txt. - - in that place. In the absence of an unequivocal list it might be - impossible for the licensee to determine what is considered by you - to comprise the Work and, in such a case, the licensee would be - entitled to make reasonable conjectures as to which files comprise - the Work. - ----- - -Copyright (c) 1994-1995 Basil K. Malyshev -Copyright (c) 2001-2005 by the STI Pub Companies -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. - - BaKoMa Fonts Licence - -------------------- - - This licence covers two font packs (known as BaKoMa Fonts Colelction, - which is available at `CTAN:fonts/cm/ps-type1/bakoma/'): - - 1) BaKoMa-CM (1.1/12-Nov-94) - Computer Modern Fonts in PostScript Type 1 and TrueType font formats. - - 2) BaKoMa-AMS (1.2/19-Jan-95) - AMS TeX fonts in PostScript Type 1 and TrueType font formats. - - Copyright (C) 1994, 1995, Basil K. Malyshev. All Rights Reserved. - - Permission to copy and distribute these fonts for any purpose is - hereby granted without fee, provided that the above copyright notice, - author statement and this permission notice appear in all copies of - these fonts and related documentation. - - Permission to modify and distribute modified fonts for any purpose is - hereby granted without fee, provided that the copyright notice, - author statement, this permission notice and location of original - fonts (http://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma) - appear in all copies of modified fonts and related documentation. - - Permission to use these fonts (embedding into PostScript, PDF, SVG - and printing by using any software) is hereby granted without fee. - It is not required to provide any notices about using these fonts. - - Basil K. Malyshev - INSTITUTE FOR HIGH ENERGY PHYSICS - IHEP, OMVT - Moscow Region - 142281 PROTVINO - RUSSIA - - E-Mail: bakoma@mail.ru - or malyshev@mail.ihep.ru - ----- - -(c) 2001-2010 by the STI Pub Companies -(c) Tavmjong Bah -(c) Tavmjung Bah -Copyright (c) 1994 Basil K. Malyshev -Copyright (c) 2001-2010 by the STI Pub Companies -Copyright (c) 2003 by Bitstream, Inc. -Copyright (c) 2006 by Tavmjong Bah -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -LCopyright (c) 2001-2010 by the STI Pub Companies - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the fonts accompanying this license ("Fonts") and associated -documentation files (the "Font Software"), to reproduce and distribute -the Font Software, including without limitation the rights to use, -copy, merge, publish, distribute, and/or sell copies of the Font -Software, and to permit persons to whom the Font Software is furnished -to do so, subject to the following conditions: - -The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software -typefaces. - -The Font Software may be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may be -modified and additional glyphs or characters may be added to the -Fonts, only if the fonts are renamed to names not containing either -the words "Bitstream" or the word "Vera". - -This License becomes null and void to the extent applicable to Fonts -or Font Software that has been modified and is distributed under the -"Bitstream Vera" names. - -The Font Software may be sold as part of a larger software package but -no copy of one or more of the Font Software typefaces may be sold by -itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, -OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT -SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome -Foundation, and Bitstream Inc., shall not be used in advertising or -otherwise to promote the sale, use or other dealings in this Font -Software without prior written authorization from the Gnome Foundation -or Bitstream Inc., respectively. For further information, contact: -fonts at gnome dot org. - ----- - -Copyright (c) 2002-2003 Hansruedi Baer -Copyright (c) 2002-2005 Maxim Shemanarev -Copyright (c) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) -Copyright (c) 2005 Tony Juricic (tonygeek@yahoo.com) -Copyright (c) 2009 John Horigan (http://www.antigrain.com) - -Permission to copy, use, modify, sell and distribute this software is granted -provided this copyright notice appears in all copies. This software is provided "as -is" without express or implied warranty, and with no claim as to its suitability for -any purpose. - ----- - -Redistribution and use in source and binary forms are permitted -provided that the above copyright notice and this paragraph are -duplicated in all such forms and that any documentation, -advertising materials, and other materials related to such -distribution and use acknowledge that the software was developed -by the University of California, Berkeley. The name of the -University may not be used to endorse or promote products derived -from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - ----- - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ----- - -Copyright 1995 Trinity College Computing Center -Copyright Font's - -Permission to use, copy, modify, and distribute this software and its documentation -for any purpose and without fee is hereby granted, provided that the above copyright -notice appear in all copies and that both that copyright notice and this permission -notice appear in supporting documentation. This software is provided "as is" without -express or implied warranty. - ----- - -Copyright (c) 1996 The Regents of the University of California -Copyright (c) 2001-2005 by the STI Pub Companies -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. - -Permission to use, copy, modify, and distribute this software for -any purpose without fee is hereby granted, provided that this en- -tire notice is included in all copies of any software which is or -includes a copy or modification of this software and in all -copies of the supporting documentation for such software. - -This work was produced at the University of California, Lawrence -Livermore National Laboratory under contract no. W-7405-ENG-48 -between the U.S. Department of Energy and The Regents of the -University of California for the operation of UC LLNL. - - DISCLAIMER - -This software was prepared as an account of work sponsored by an -agency of the United States Government. Neither the United States -Government nor the University of California nor any of their em- -ployees, makes any warranty, express or implied, or assumes any -liability or responsibility for the accuracy, completeness, or -usefulness of any information, apparatus, product, or process -disclosed, or represents that its use would not infringe -privately-owned rights. Reference herein to any specific commer- -cial products, process, or service by trade name, trademark, -manufacturer, or otherwise, does not necessarily constitute or -imply its endorsement, recommendation, or favoring by the United -States Government or the University of California. The views and -opinions of authors expressed herein do not necessarily state or -reflect those of the United States Government or the University -of California, and shall not be used for advertising or product -endorsement purposes. - ----- - -Copyright (c) 2011 Google, Inc. - -Permission is hereby granted, without written agreement and without -license or royalty fees, to use, copy, modify, and distribute this -software and its documentation for any purpose, provided that the -above copyright notice and the following two paragraphs appear in -all copies of this software. - -IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN -IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO -PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - ----- - -Copyright (c) 2011 Szabolcs Nagy -Copyright (c) 2011 Valentin Ochs - -Permission to use, copy, modify, and/or distribute this code -for any purpose with or without fee is hereby granted. -There is no warranty. - ----- - -Copyright (c) 2001 Addison-Wesley -Copyright (c) 2001 by Andrei Alexandrescu - -Permission to use, copy, modify, distribute, and sell this software and -its documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. No representations are made about the suitability of this -software for any purpose. It is provided "as is" without express or -implied warranty. - ----- - -Copyright (c) 2004-2011 Paul T. McGuire - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software annotated with this license and the Software, to -deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THIS SOFTWARE IS BEING DISTRIBUTED BY SYNOPSYS SOLELY ON AN "AS IS" -BASIS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE HEREBY DISCLAIMED. IN NO EVENT SHALL SYNOPSYS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -THE POSSIBILITY OF SUCH DAMAGE. - ----- - -Copyright (c) 1994 by Xerox Corporation - -THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED -OR IMPLIED. ANY USE IS AT YOUR OWN RISK. - -Permission is hereby granted to use or copy this program for any -purpose, provided the above notices are retained on all copies. - -Permission to modify the code and to distribute modified code is -granted, provided the above notices are retained, and a notice that -the code was modified is included with the above copyright notice. - ----- - -Copyright (c) 2001-2019 Federico Di Gregorio -Copyright (c) 2006-2019 Johan Dahlin -Copyright (c) 2007-2019 Daniele Varrazzo -Copyright (c) 2008 Canonical Ltd. -Copyright (c) 2008-2019 James Henstridge -Copyright (c) 2010-2019 Jan Urbanski -Copyright (c) 2013-2019 Matthew Woodcraft -Copyright (c) 2017 My Karlsson -Copyright (c) 2018-2019 Joyent, Inc. -Copyright (c) 2020 The Psycopg Team - -In addition, as a special exception, the copyright holders give permission to -link this program with the OpenSSL library (or with modified versions of OpenSSL -that use the same license as OpenSSL), and distribute linked combinations -including the two. - -You must obey the GNU Lesser General Public License in all respects for all of -the code used other than OpenSSL. If you modify file(s) with this exception, -you may extend this exception to your version of the file(s), but you are not -obligated to do so. If you do not wish to do so, delete this exception statement -from your version. If you delete this exception statement from all source files -in the program, then also delete it here. - ----- - -This component contains multiple third-party subcomponents licensed -under permissive licenses in the style of GPL, LGPL, and/or MPL. The -license obligations of these subcomponents may apply when a subcomponent -is actually used and/or redistributed. - ----- - -(c) 2013 title 0.09734s from fe2.rs.github.com' GitHub, Inc. -(c) Better News -(c) Good News -(c) Hello Jack -COPYRIGHT Django Software Foundation and contributors -Copyright (c) 1994 David Burren -Copyright (c) 1998-2003 by the University of Florida -Copyright (c) 2001 present Python Software Foundation -Copyright (c) 2001-2008 Ville Laurikari -Copyright (c) 2007 Sally -Copyright (c) 2007 Sally Smith -Copyright (c) 2007 Sally Smith Hard-coded -Copyright (c) 2009 Oyvind Sean Kinsey, oyvind@kinsey.no -Copyright (c) 2011 Valentin Ochs -Copyright 1984, 1987 Adobe Systems, Inc. -Copyright 2005 Ellis & Grant, Inc. -Copyright 2005 Travis Oliphant -Portions Copyright 1988 Digital Equipment Corporation -copyright Django Software Foundation and contributors -copyright Python (Monty) Pictures - -This component contains multiple third-party subcomponents licensed -under permissive licenses in the style of MIT, BSD, X11, and/or Apache. - ----- +------------------------- -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright (c) 2002-2011 John D. Hunter -Copyright (c) 2012-2013 Matplotlib Development Team -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. + Defining What Constitutes the Work -PSF LICENSE AGREEMENT FOR PYTHON 3.7.2 + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: -1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and - the Individual or Organization ("Licensee") accessing and otherwise using Python - 3.7.2 software in source or binary form and its associated documentation. + % This work consists of all files listed in manifest.txt. -2. Subject to the terms and conditions of this License Agreement, PSF hereby - grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, - analyze, test, perform and/or display publicly, prepare derivative works, - distribute, and otherwise use Python 3.7.2 alone or in any derivative - version, provided, however, that PSF's License Agreement and PSF's notice of - copyright, i.e., "Copyright © 2001-2019 Python Software Foundation; All Rights - Reserved" are retained in Python 3.7.2 alone or in any derivative version - prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on or - incorporates Python 3.7.2 or any part thereof, and wants to make the - derivative work available to others as provided herein, then Licensee hereby - agrees to include in any such work a brief summary of the changes made to Python - 3.7.2. - -4. PSF is making Python 3.7.2 available to Licensee on an "AS IS" basis. - PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF - EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR - WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE - USE OF PYTHON 3.7.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.7.2 - FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF - MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.7.2, OR ANY DERIVATIVE - THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material breach of - its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any relationship - of agency, partnership, or joint venture between PSF and Licensee. This License - Agreement does not grant permission to use PSF trademarks or trade name in a - trademark sense to endorse or promote products or services of Licensee, or any - third party. - -8. By copying, installing or otherwise using Python 3.7.2, Licensee agrees - to be bound by the terms and conditions of this License Agreement. + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. ---- -This code is hereby placed in the public domain. +Copyright (c) 1996-1997 Andreas Dilger +Copyright (c) 2018-2022 Cosmin Truta +Copyright (c) 1998-2002, 2004, 2006-2018 Glenn Randers-Pehrson +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. +Copyright (c) 1995-2022 The -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +This copy of the libpng notices is provided for your convenience. In case of +any discrepancy between this copy and the notices in the file png.h that is +included in the libpng distribution, the latter shall prevail. ----- +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: -Copyright (c) 1987, 1997-2007 Adobe Systems, Inc. -Copyright (c) 1994-2004, 2009 Fredrik Lundh -Copyright (c) 1995-2011 by Fredrik Lundh -Copyright (c) 1995-2011 by Secret Labs AB -Copyright (c) 1997-2005, 2008 Secret Labs AB -Copyright (c) 1998 by Toby J Sargeant -Copyright (c) 1998-2001 Marti Maria -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright (c) 2002-2003 Kevin Cazabon -Copyright (c) 2002-2003 Kevin Cazabon kevin@cazabon.com http://www.cazabon.com -Copyright (c) 2004 by Bob Ippolito -Copyright (c) 2004 by Health Research Inc. -Copyright (c) 2004 by Secret Labs -Copyright (c) 2004 by William Baxter -Copyright (c) 2008 by Karsten Hiddemann -Copyright (c) 2010-2021 by Alex Clark and contributors -Copyright (c) 2012 by Brian Crowell -Copyright (c) 2013 by Eric Soroos -Copyright (c) 2013, 2016 Eric Soroos -Copyright (c) 2014 Alastair Houghton -Copyright (c) 2014 Coriolis Systems Limited -Copyright (c) 2014 Dov Grobgeld -Copyright (c) 2014 by Alastair Houghton -Copyright (c) 2014 by Coriolis Systems Limited -Copyright (c) 2016 Marcin Kurczewski -Copyright (c) 2016 by Mickael Bonfill -Copyright (c) 2017 Mickael Bonfill -Copyright (c) 2020 by Pan Jing -Copyright 1987-2006 Adobe Systems Incorporated -Copyright 2009 International Color Consortium, -Portions Copyright 1988 Digital Equipment Corp. -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -copyright (c) 1991-1995 Thomas G. Lane -copyright 1995-2021 Fredrik Lundh, Alex Clark and Contributors -copyright 2003 kevin_cazabon@hotmail.com kevin@cazabon.com -X11R4 release, copyright M.I.T. +If you modify libpng you may insert additional notices immediately following +this sentence. -By obtaining, using, and/or copying this software and/or its associated documentation, you agree that you have read, understood, and will comply with the following terms and conditions: +libpng versions 1.2.6, August 15, 2004, through 1.2.33, October 31, 2008, are +Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.2.5 +with the following individual added to the list of Contributing Authors -Permission to use, copy, modify, and distribute this software and its associated documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Secret Labs AB or the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. + Cosmin Truta -SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are +Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.0.6 +with the following individuals added to the list of Contributing Authors ----- + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant -Copyright 2007, 2009 International Color Consortium +and with the following additions to the disclaimer: -To anyone who acknowledges that the file "sRGB Color Space Profile.icm" -is provided "AS IS" WITH NO EXPRESS OR IMPLIED WARRANTY: -permission to use, copy and distribute this file for any purpose is hereby -granted without fee, provided that the file is not changed including the HP -copyright notice tag, and that the name of Hewlett-Packard Company not be -used in advertising or publicity pertaining to distribution of the software -without specific, written prior permission. Hewlett-Packard Company makes -no representations about the suitability of this software for any purpose. + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. ----- +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-0.96, +with the following individuals added to the list of Contributing Authors: -Copyright (c) 1993 by Sun Microsystems, Inc. + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik -Developed at SunPro, a Sun Microsystems, Inc. business. +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88, +with the following individuals added to the list of Contributing Authors: -Permission to use, copy, modify, and distribute this -software is freely granted, provided that this notice -is preserved. + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner ----- +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. -Copyright (c) 1991-2014 Unicode, Inc. -Copyright (c) 2001-2014 Python Software Foundation +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner -Unicode Data Files include all data files under the directories -http://www.unicode.org/Public/, http://www.unicode.org/reports/, and -http://www.unicode.org/cldr/data/ . Unicode Software includes any source -code published in the Unicode Standard or under the directories -http://www.unicode.org/Public/, http://www.unicode.org/reports/, and -http://www.unicode.org/cldr/data/. +The PNG Reference Library is supplied "AS IS". The Contributing Authors +and Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and of +fitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary, +or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. -NOTICE TO USER: Carefully read the following legal agreement. BY -DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA -FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY -ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS -AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE -OR USE THE DATA FILES OR SOFTWARE. +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: -COPYRIGHT AND PERMISSION NOTICE +1. The origin of this source code must not be misrepresented. -Copyright © Unicode, Inc. All rights reserved. Distributed under -the Terms of Use in http://www.unicode.org/copyright.html. +2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. -Permission is hereby granted, free of charge, to any person obtaining a -copy of the Unicode data files and any associated documentation (the -"Data Files") or Unicode software and any associated documentation (the -"Software") to deal in the Data Files or Software without restriction, -including without limitation the rights to use, copy, modify, merge, -publish, distribute, and/or sell copies of the Data Files or Software, -and to permit persons to whom the Data Files or Software are furnished -to do so, provided that - -(a) the above copyright notice(s) and this permission notice appear with -all copies of the Data Files or Software, - -(b) both the above copyright notice(s) and this permission notice appear -in associated documentation, and - -(c) there is clear notice in each modified Data File or in the Software -as well as in the documentation associated with the Data File(s) or -Software that the data or software has been modified. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR -ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. +3. This Copyright notice may not be removed or altered from any + source or altered source distribution. -Except as contained in this notice, the name of a copyright holder shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in these Data Files or Software without prior written -authorization of the copyright holder. +The Contributing Authors and Group 42, Inc. specifically permit, without +fee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use this +source code in a product, acknowledgment is not required but would be +appreciated. -Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be -registered in some jurisdictions. All other trademarks and registered -trademarks mentioned herein are the property of their respective owners. ----- +A "png_get_copyright" function is available, for convenient use in "about" +boxes and the like: + + printf("%s",png_get_copyright(NULL)); -Portions Copyright 2001 Unicode, Inc. +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). -This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -No claims are made as to fitness for any particular purpose. No -warranties of any kind are expressed or implied. The recipient -agrees to determine applicability of information provided. If this -file has been provided on optical media by Unicode, Inc., the sole -remedy for any claim will be exchange of defective media within 90 -days of receipt. +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a +certification mark of the Open Source Initiative. -Unicode, Inc. hereby grants the right to freely use the information -supplied in this file in the creation of products supporting the -Unicode Standard, and to make copies of this file in any form for -internal or external distribution as long as this notice remains -attached. +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +October 31, 2008 ---- -(c) Ao03 C/1/4Zaq? BVI (c) u (c) E2U3O +Copyright 2015 (c ) by FontTools (c) (c) Y uMxu yaC OO Pa (c) (c) EA -(c) 1988 Date July, +COPYRIGHT (c) FOOBAR +Copyright (c) 2021 04-21 Stefan van der Walt https://github.com/stefanv/lloyd (c) 1CE BHoig -(c) 2005, 2015 jQuery Foundation, Inc. -(c) 2007-2012 Steven Levithan +Copyright (c) 2010 202x The platformdirs +Copyright 1987 A. Volgenant/Amsterdam School of Economics, University of Amsterdam (c) AEY EwE2zU (c) AGaY aoT" Pk6Ao +Copyright (c) 2009-2012 ARM Ltd. +Copyright Absoft Corporation +Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN +Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 +(c) 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2015 Adobe System Incorporated +(c) 2002 Adobe Systems Incorporated +Copyright (c) 2002 Adobe Systems Incorporated +Copyright 2010-2012, 2014 Adobe Systems Incorporated +(c) 2010-2012 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2018 Adobe systems Co., Ltd. +Copyright (c) 2016 Adrian Veres +Copyright (c) 2023 Ahmed TAHRI +copyright 2023 Ahmed TAHRI +Copyright (c) 2006-2013 Alexander Chemeris +Copyright (c) 1997, 2009, 2011 American Mathematical Society http://www.ams.org +Copyright (c) Anderson Bravalheri +Copyright 2013 Andrea Gavana +Copyright (c) 2008-2020 Andrey Petrov and contributors +Copyright (c) 2011, 2014, 2019, 2021 Anthony Green +Copyright (c) 2017 Anthony Sottile +copyright 2012-2018 Armin Rigo, Maciej Fijalkowski +Copyright (c) 2008 Attractive Chaos +Copyright (c) 2000 BeOpen.com +Copyright 2021 Behdad Esfahbod +Copyright (c) 2015-2019 Belleve Invis +Copyright (c) 2010-2020 Benjamin Peterson +copyright 2010-2020 Benjamin Peterson +Copyright (c) 2002 Bo Thorsen +Copyright (c) 2003-2009 Bruce D. Evans +Copyright (c) 2008-2016 California Institute of Technology +(c) Casper da Costa-Luis casperdcl (https://github.com/casperdcl) +Copyright 2008 Chris Lambrou +Copyright (c) 2014 Code Charm Ltd (c) Compute Hessian H -(c) Covert Chebyshev +Copyright 2000 Computing Research Labs, New Mexico State University +(c) Convert Chebyshev +Copyright (c) 1995-2001 Corporation for National Research Initiatives +(c) 1988 Date July, +Copyright (c) 1994 David Burren +Copyright (c) 2010 David Fong and Michael Saunders +Copyright (c) 2004 David M. Cooke +Copyright (c) 2003-2011 David Schultz +Copyright (c) 2021 Dot +Copyright (c) 2014 Eric Moore +Copyright 2014 Eric W. Moore +Copyright (c) 2012 Erik Rose +Copyright (c) 2017-2020 Estonian Information System +Copyright (c) 2011 Ethan Schoonover (c) False, False, False, True (c) False, False, True, False +Copyright (c) 2016-2017 Felix Lenders +Copyright 2001-2002, 2011 Francesco Zappa Nardelli +Copyright (c) 1989, 1991 Free Software Foundation, Inc. +Copyright 2002 Gary Strangman +Copyright (c) 2010 Gary Wilson Jr. and contributors +Copyright 2011, 2013, 2015, 2019 Google Inc. +Copyright 2006 Google Inc. https://code.google.com/p/google-diff-match-patch +Copyright (c) 2018 Google LLC +Copyright 2015-2021 Google LLC. +Copyright (c) 2011 Google, Inc. +Copyright (c) 2019 Hadley Wickham RStudio and Evan Miller +Copyright (c) 2015 Hynek Schlawack +Copyright (c) 2008 Ian Bicking and Contributors +Copyright (c) 2015 Information Technology +Copyright (c) 2017-2021 Ingy +Copyright (c) 2017-2021 Ingy dot Net +Copyright 2002-2005 J.S. Roy (js@jeannot.org), (c) JS Foundation and other contributors +Copyright JS Foundation and other contributors +Copyright JS Foundation and other contributors, https://js.foundation +Copyright (c) 2006-2013 James Graham and other contributors +copyright 2006-2013 James Graham, Sam Sneddon, and contributors +Copyright (c) 2015 Jared Hobbs +Copyright Jason R. Coombs +Copyright (c) 2002-2005 Jean-Sebastien Roy (js@jeannot.org) +Copyright (c) 2009-2019 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors +Copyright (c) 1995-1997 Jim Hugunin, hugunin@mit.edu +Copyright (c) 2001 John Beniton +Copyright (c) 2012-2013, 2022-2023 Julian Berman +Copyright (c) 2017 Just van Rossum +Copyright 1998 Just van Rossum +Copyright (c) 1999-2004 Just van Rossum, LettError (just@letterror.com) +(c) KOKOKOKOKKuKyKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKyK KyKxKzKzKzKzKzKzKzKzKzKzKzKzKyKxKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzK K K KzK K +Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors +Copyright (c) 2016-2023 Khaled Hosny +Copyright (c) 2016 Khaled Hosny +Copyright (c) 2006-2016 Kirill Simonov +Copyright (c) 2006-2016 Kirill Simonov +Copyright (c) 2013-2014 Lennart Regebro +Copyright (c) 2018 Luminoso Technologies, Inc. +Copyright (c) 1997-2002 Makoto Matsumoto and Takuji Nishimura +Copyright (c) 2008-2010 Marius Gedminas +Copyright 1995-2013 Mark Adler +Copyright 1995-2005 Mark Adler +3 CScs Qkkbal +Copyright (c) 1998-2020 Marti Maria Saguer +Copyright (c) 2019-2021 Martin Ankerl +Copyright (c) 2012 Massachusetts Institute of Technology +Copyright (c) 2015, 2018 Melissa E. O'Neill +Copyright 2014 Melissa O'Neill +Copyright (c) 2007-2010 Michael G Schwern +Copyright (c) 2021 Microsoft Corporation (c) Multiply a Chebyshev (c) Multiply a Hermite (c) Multiply a Laguerre (c) Multiply a Legendre (c) N Revealed -(c) OY H-aaoY +(c) Noam Yorav-Raphael, original author +Copyright (c) 2021 Nordic Institute for Interoperability Solutions (NIIS) +Copyright (c) 1999-2001 North Carolina State University +Copyright (c) 2005-2017, 2019 NumPy Developers +copyright 2008-2022 NumPy Developers +Copyright (c) 2010 Oliver Tonnhofer (c) Ou O (c) Ow (c) (c) PM5u0ACUM A PSjAo -(c) Te X -(c) True, True, False, False -(c) UG/ (c) ASSdego -(c) Xew nRiL+-adegRLiebaY UuX -(c) Xg1I CuNE -(c) ZdSSPHU (c) -(c) cuQA$?nZulVV| CO -(c) h document.createElement 'strong h.className select2-results group -(c) oOY bV -(c) xdegQO3/4l (c) Y -Copyright (C) Andrey Petrov -Copyright (C) Armin Rigo, Maciej Fijalkowski -Copyright (C) Benjamin Peterson -Copyright (C) Hynek Schlawack -Copyright (C) Jason R. Coombs -Copyright (C) Julian Berman -Copyright (C) Kirill Simonov -Copyright (C) NIIS -Copyright (C) Noam Yorav-Raphael -Copyright (C) Paul McGuire -Copyright (C) Python Packaging Authority -Copyright (C) Stuart Bishop -Copyright (C) Tobias Gustafsson -Copyright (c) 1995-1997 Jim Hugunin, hugunin@mit.edu -Copyright (c) 1996-2003 Red Hat, Inc. -Copyright (c) 2001 John Beniton -Copyright (c) 2001-2005 by the STI Pub Companies -Copyright (c) 2002 Bo Thorsen +Copyright 2002-2021, 2023-2024 Paul McGuire +Copyright (c) 2003-2016, 2019, 2023 Paul McGuire +copyright 2006 Paul McGuire +Copyright (c) 2003-2022 Paul T. McGuire +Copyright 2011-2012, 2015, 2019 Paul T. McGuire +copyright 2018-2022 Paul T. McGuire +Copyright Petri Savolainen +Copyright (c) 2009 Pierre Raybaut Copyright (c) 2002 Ranjit Mathew -Copyright (c) 2002 Roger Sayle -Copyright (c) 2002-2005 Jean-Sebastien Roy (js@jeannot.org) -Copyright (c) 2003-2016, 2019 Paul McGuire -Copyright (c) 2003-2019 Paul T. McGuire -Copyright (c) 2003-2019 Stuart Bishop -Copyright (c) 2004 David M. Cooke -Copyright (c) 2005-2010 ActiveState Software Inc. +Copyright (c) 1996-2003, 2007-2008 Red Hat, Inc. Copyright (c) 2005-2014 Rich Felker -Copyright (c) 2006-2013 James Graham and other contributors -Copyright (c) 2006-2013 James Graham, Geoffrey Sneddon, and other contributors -Copyright (c) 2006-2016 Kirill Simonov -Copyright (c) 2006-2016 Kirill Simonov -Copyright (c) 2007 Cybozu Labs, Inc. -Copyright (c) 2007-2010 Michael G Schwern -Copyright (c) 2007-2012 Steven Levithan -Copyright (c) 2008 Ian Bicking and Contributors -Copyright (c) 2008-2009, 2011 by Attractive Chaos -Copyright (c) 2008-2010 Marius Gedminas -Copyright (c) 2008-2019 Andrey Petrov and contributors -Copyright (c) 2009 Pierre Raybaut -Copyright (c) 2009-2019 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors -Copyright (c) 2010 David Fong and Michael Saunders -Copyright (c) 2010 Gary Wilson Jr. and contributors -Copyright (c) 2010 Oliver Tonnhofer +Copyright 2015 Robert Kern +Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl +Copyright (c) 2002 Roger Sayle +Copyright (c) 2014 Ryan Juckett +COPYRIGHT STRING. +Copyright (c) 2012 Senko Rasic Copyright (c) 2010 Stefano Rivera -Copyright (c) 2010 Thomas P. Robitaille -Copyright (c) 2010-2020 Benjamin Peterson -Copyright (c) 2011 Ethan Schoonover +Copyright (c) 2008 Stephen L. Moshier +Copyright (c) 2003-2009 Steven G. Kargl +(c) 2007-2012 Steven Levithan +Copyright (c) 2007-2017 Steven Levithan +Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam +Copyright (c) 2003-2019 Stuart Bishop +(c) Copyright 1994-1997 Summer Institute of Linguistics +Copyright (c) 1993, 2004 Sun Microsystems +Copyright (c) 2018 Sylvain Gubian , Yang Xiang Copyright (c) 2011 Szabolcs Nagy -Copyright (c) 2011 Valentin Ochs +Copyright (c) 2019 TAHRI Ahmed R. +Copyright 2021 Taneli Hukkinen +Copyright (c) 2021 Taneli Hukkinen +(c) Te X +Copyright 2010-2020 The Amiri Project +Copyright (c) 2008 The Android Open Source Project +Copyright 2008 The Bungee Project Copyright (c) 2011-2014 The Dojo Foundation -Copyright (c) 2012 Google Inc. -Copyright (c) 2012 Massachusetts Institute of Technology -Copyright (c) 2012 Senko Rasic -Copyright (c) 2012-2013 Julian Berman -Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors -Copyright (c) 2013 Eddy Petrisor -Copyright (c) 2013 noamraph -Copyright (c) 2014 Code Charm Ltd -Copyright (c) 2014 Eric Moore -Copyright (c) 2014 Mathjax Consortium -Copyright (c) 2014 Ryan Juckett -Copyright (c) 2015 Hynek Schlawack -Copyright (c) 2015 Information Technology -Copyright (c) 2015 Jared Hobbs -Copyright (c) 2015, 2018 Melissa E. O'Neill +copyright (c) The FreeType Project (www.freetype.org) +Copyright (c) 2012-2019 The Libertinus Project +Copyright (c) 2015-2019 The Mada Project +Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory +copyright (c) 2005-2016 The RoboFab Developers +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex) +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex)Roboto +Copyright 2002-2016 The SciPy Developers +Copyright (c) 2016-2024 The Uncertainty Quantification Foundation +Copyright (c) 2010 Thomas P. Robitaille +Copyright (c) 2022 Tobias Gustafsson +(c) True, True, False, False +Copyright (c) 2009 Type Supply LLC +(c) UG/ (c) ASSdego +Copyright (c) 2011 Valentin Ochs +Copyright (c) 2001-2008 Ville Laurikari +Copyright (c) 2016 Wenzel Jakob Copyright (c) 2015-2016 Will Bond -Copyright (c) 2016 Adrian Veres -Copyright (c) 2016 Jason R Coombs -Copyright (c) 2016 Khaled Hosny -Copyright (c) 2016-2017 Felix Lenders -Copyright (c) 2017-2020 Estonian Information System -Copyright (c) 2017-2020 Ingy dot Net -Copyright (c) 2017-2020 Ingy dot Net -Copyright (c) 2018 Google LLC -Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl -Copyright (c) 2018 Sylvain Gubian , Yang Xiang -Copyright (c) 2019 Hadley Wickham RStudio and Evan Miller -Copyright (c) 2019 NumPy Developers -Copyright (c) 2021 Nordic Institute for Interoperability Solutions (NIIS) -Copyright (c) 2021 Tobias Gustafsson -Copyright (c) Twisted Matrix Laboratories -Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct -Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier -Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 -Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono -Copyright 2002-2005 J.S. Roy (js@jeannot.org), -Copyright 2002-2019 Paul McGuire -Copyright 2003-2013 copy Paul McGuire -Copyright 2003-2016, 2019 by Paul McGuire +(c) Xew nRiL+-adegRLiebaY UuX +(c) Xg1I CuNE +(c) ZdSSPHU (c) +copyright (c) 2021 by Ahmed TAHRI Copyright 2004 by Alberto Santini http://www.albertosantini.it/chess -Copyright 2004-2005 by Enthought, Inc. -Copyright 2005, 2008, 2014 jQuery Foundation, Inc. and other contributors -Copyright 2006 Dean Edwards -Copyright 2008 Anne M. Archibald -Copyright 2008 Chris Lambrou -Copyright 2011-2012, 2015 Paul T. McGuire -Copyright 2013 Andrea Gavana -Copyright 2014 Eric W. Moore -Copyright 2014 Melissa O'Neill -Copyright 2014-2015 jQuery Foundation and other contributors -Copyright Absoft Corporation -Copyright JS Foundation and other contributors -Copyright Jason R. Coombs -Copyright Petri Savolainen -Copyright jQuery Foundation and other contributors, https://jquery.org +Copyright (c) 2008-2009, 2011 by Attractive Chaos +copyrighted 2004 by David M. Cooke +copyright (c) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg +Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg Portions copyright (c) 1990 by Elsevier, Inc. +Copyright 2004-2005 by Enthought, Inc. +Copyright (c) 2015 by FontTools +Copyright (c) 2000-2002 by Francesco Zappa Nardelli +Copyright 2017 by Jens Kutilek +Portions copyright (c) 2009-2012 by Khaled Hosny Portions copyright (c) 1998-2003 by MicroPress, Inc. -copyright 2006 Paul McGuire -copyright 2006-2013 James Graham, Sam Sneddon, and contributors +Copyright (c) 2010 by Pablo Impallari +Copyright (c) 2010 by Pablo Impallari. www.impallari.com +Copyright 2003-2019, 2022-2024 by Paul McGuire +Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier +Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct +Copyright (c) 2009-2010, 2013-2016 by the Brotli Authors +copyrighted by the Free Software Foundation +Copyright (c) 2001-2011 by the STI Pub Companies +Copyright 2015 c +Copyright 1997, 2009, 2011 c American Mathematical Society +Copyright 2003-2023 copy Paul McGuire +(c) cuQA$?nZulVV| CO +(c) h document.createElement 'strong h.className select2-results group +(c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input +Copyright jQuery Foundation and other contributors +Copyright (c) 2013 noamraph +(c) oOY bV copyright 2008 s, The SciPy community -copyright 2010-2020 Benjamin Peterson -copyright 2012-2018 Armin Rigo, Maciej Fijalkowski -copyright 2015 Hynek Schlawack -copyright 2015 Tobias Gustafsson -copyright 2017-2018 NumPy Developers -copyright 2018 Paul T. McGuire -copyright Cephes Math -copyrighted 2004 by David M. Cooke -Csp self.spmatrix (c) Dsp +(c) xdegQO3/4l (c) Y Foic (c) Xo Ri (c) Ni7 (c) -X11R4 release, copyright M.I.T. -u'Julian Berman copyright u'2013 +Hynek Schlawack copyright f'2015 +Steven Levithan (c) 2010-2017 +Steven Levithan (c) 2012-2017 +Steven Levithan (c) 2008-2017 +Steven Levithan (c) 2007-2017 +Steven Levithan (c) 2009-2017 +Julian Berman copyright 2013 +Csp self.spmatrix (c) Dsp +Gamma (c) Gamma (c) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -8741,25 +11493,78 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Copyright 1989 by Carnegie Mellon University -Permission to use, copy, modify and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided that -the above copyright notice appears in all copies and that both that copyright -notice and this permission notice appear in supporting documentation, and that -the name of CMU and The Regents of the University of California not be used in -advertising or publicity pertaining to distribution of the software without -specific written permission. - -CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL CMU OR THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE -LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +Permission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the names of the copyright holders not be used in advertising or publicity pertaining to distribution of the software without specific written permission. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ---- -Copyright (c) 2009 Pierre Raybaut +Copyright (c) 2018-2020 Adobe, Inc +Copyright (c) 2013-2015 Alexei Podtelezhnikov +Copyright (c) 2005-2006, 2020-2023 Behdad Esfahbod +Copyright (c) 2007 Chris Wilson +Copyright (c) 2011 Codethink Limited +Copyright (c) 1998-2005 David Turner and Werner Lemberg +Copyright (c) 2015-2020 Ebrahim Byagowi +Copyright (c) 2019-2020 Facebook, Inc. +Copyright (c) 2010-2022 Google, Inc. +Copyright (c) 2016 Igalia S.L. +Copyright (c) 2009 Keith Stribley +Copyright (c) 2018, 2021 Khaled Hosny +Copyright (c) 2011 Martin Hosken and SIL International +Copyright (c) 2022 Matthias Clasen +Copyright (c) 2012, 2015 Mozilla Foundation +Copyright (c) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) +Copyright (c) 2004, 2007-2010, 2013, 2021-2023 Red Hat, Inc. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +---- + +Copyright 1988-1989, 1993-1994, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of copyright holders +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +from the copyright holders. + +---- + +Copyright (c) 2008-2013 por/by Raimundo Santos Moura +Copyright (c) 2003 the Initial Developer MOZILLA PUBLIC LICENSE Version 1.0 @@ -8882,9 +11687,11 @@ EXHIBIT A. ---- +Copyright (c) Ahmed TAHRI Ousret (https://github.com/Ousret) +(c) 2012 Denny Vrandecic (http://simia.net/letters/) +Copyright (c) 2009 Santhosh Thottingal +copyright Wilbert Berendsen, CourtBouillon and contributors Copyright (c) 2003 the Initial Developer -Copyright 2008 Wilbert Berendsen -Copyright 2012-2013 Guillaume Ayoub MOZILLA PUBLIC LICENSE Version 1.1 @@ -9035,15 +11842,17 @@ EXHIBIT A -Mozilla Public License. ---- -(c) 1999 Entrust.net Limited -(c) 1999, 2048 Entrust.net Limited Label Entrust.net Premium Secure Server CA Serial +(c) Casper da Costa-Luis casperdcl (https://github.com/casperdcl) (c) 2006 Entrust, Inc. -(c) 2006 Entrust, Inc. Label Entrust Root Certification (c) 2009, 2012, 2015 Entrust, Inc. - for -(c) Casper da Costa-Luis casperdcl (https://github.com/casperdcl) +(c) 2006 Entrust, Inc. Label Entrust Root Certification +(c) 1999 Entrust.net Limited +(c) 1999, 2048 Entrust.net Limited Label Entrust.net Premium Secure Server CA Serial +Copyright (c) 2018 Michal Horejsek (c) Noam Yorav-Raphael, original author -Copyright (C) Kenneth Reitz -Copyright (C) Noam Yorav-Raphael +Copyright 2019-2022 Pyodide contributors +Copyright (c) 2019-2022 Pyodide contributors +Copyright (c) 2013 noamraph Mozilla Public License Version 2.0 ================================== @@ -9421,12 +12230,7 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice ---- -Copyright (c) 1970-2003 Wm. Randolph Franklin -Copyright (c) 2001-2005 by the STI Pub Companies Copyright (c) 2019 Kevin Sheppard -Portions copyright (c) 1990 by Elsevier, Inc. -Portions copyright (c) 1998-2003 by MicroPress, Inc. -X11R4 release, copyright M.I.T. University of Illinois/NCSA Open Source License @@ -9457,121 +12261,65 @@ SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. ---- -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors -Copyright 2002-2003, 2005, 2008-2010, 2012 GNU Freefont contributors. FreeMono FreeMono - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of cooperative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide an open -framework in which fonts may be shared and improved in partnership with -others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and sold with any software provided that the font -names of derivative works are changed. The fonts and derivatives, -however, cannot be released under any other type of license. - -DEFINITIONS -"Font Software" refers to any and all of the following: - - font files - - data files - - source code - - build scripts - - documentation - -"Reserved Font Name" refers to the Font Software name as seen by -users and any other names as specified after the copyright statement. - -"Standard Version" refers to the collection of Font Software -components as distributed by the Copyright Holder. - -"Modified Version" refers to any derivative font software made by -adding to, deleting, or substituting -- in part or in whole -- -any of the components of the Standard Version, by changing formats -or by porting the Font Software to a new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Standard or Modified Versions, may be sold by itself. - -2) Standard or Modified Versions of the Font Software may be bundled, -redistributed and sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s), in part or in whole, unless explicit written permission is -granted by the Copyright Holder. This restriction applies to all -references stored in the Font Software, such as the font menu name and -other font description fields, which are used to differentiate the -font from others. - -4) The name(s) of the Copyright Holder or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed using this license, and may not be distributed -under any other license. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. - ----- - -(c) 2001-2010 by the STI Pub Companies -(c) 2010-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) -Copyright (c) 1994 Basil K. Malyshev +Copyright 2015 (c ) by FontTools +Copyright +(c) 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2014-2021 Adobe (http://www.adobe.com/) +Copyright 2016 Adobe (http://www.adobe.com/).Adobe Variable Font PrototypeRegular1.004 ADBO AdobeVFPrototype-Default ADOBEVersion +Copyright 2015 Adobe System Incorporated +(c) 2002 Adobe Systems Incorporated +Copyright (c) 2002 Adobe Systems Incorporated +Copyright 2010-2012, 2014 Adobe Systems Incorporated +(c) 2010-2012 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright 2014-2016 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright (c) 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/) +Copyright 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/).Noto Sans JP RegularRegular1.004 GOOG NotoSansJP-Regular ADOBEVersion +Copyright (c) 2018 Adobe systems Co., Ltd. Copyright (c) 1997, 2009 American Mathematical Society -Copyright (c) 1997, 2009 American Mathematical Society (http://www.ams.org) -Copyright (c) 2001-2010 by the STI Pub Companies -Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic +Copyright (c) 1997, 2009, 2011 American Mathematical Society (http://www.ams.org) +Portions copyright 1997, 2009, 2011 American Mathematical Society +Copyright (c) 1994 Basil K. Malyshev +Copyright 2021 Behdad Esfahbod +Copyright (c) 2015-2019 Belleve Invis +Copyright (c) 2015-2020 Belleve Invis (belleve@typeof.net) Copyright (c) 2018 Dimitar Toshkov Zhekov +Copyright 2011, 2013-2016, 2019 Google Inc. +Copyright (c) 2018 Google LLC +Copyright 2015-2021 Google LLC. +Copyright 1998 Just van Rossum +Portions copyright 2015 Khaled Hosny +(c) 2010 Pablo Impallari (www.impallari.com impallari@gmail.com) +Copyright (c) 2010 Pablo Impallari (www.impallari.com impallari@gmail.com) +Copyright (c) 2018 Roel Nieskens, https://pixelambacht.nl +COPYRIGHT STRING. +(c) Copyright 1994-1997 Summer Institute of Linguistics +Copyright 2010-2020 The Amiri Project +Copyright 2015-2021 The Aref Ruqaa Project Authors +Copyright 2015-2021 The Aref Ruqaa Project Authors (https://github.com/aliftype/aref-ruqaa) Copyright 2008 The Bungee Project -Copyright 2013 Google Inc.Noto Color EmojiRegularVersion -Copyright 2014, 2016 Google Inc. -Copyright 2014-2015 Adobe Systems Incorporated (http://www.adobe.com/).Noto Sans JP RegularRegular1.004 GOOG NotoSansJP-Regular ADOBEVersion -Copyright 2016 Adobe (http://www.adobe.com/).Adobe Variable Font PrototypeRegular1.004 ADBO AdobeVFPrototype-Default ADOBEVersion -Copyright 2018 by Jack Halten Fahnestock -Copyright +Copyright (c) 2012-2019 The Libertinus Project +Copyright (c) 2015-2019 The Mada Project +Copyright 2021 The Qahiri Project +copyright (c) 2005-2016 The RoboFab Developers +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex) +Copyright 2017 The Roboto Flex Project Authors (https://github.com/TypeNetwork/Roboto-Flex)Roboto +Copyright (c) 2009 Type Supply LLC Portions copyright (c) 1990 by Elsevier, Inc. +Copyright (c) 2015 by FontTools +Copyright 2018 by Jack Halten Fahnestock +Copyright 2017 by Jens Kutilek +Portions copyright (c) 2009-2012 by Khaled Hosny Portions copyright (c) 1998-2003 by MicroPress, Inc. -Portions copyright 1997, 2009, 2011 American Mathematical Society -Portions copyright 2015 Khaled Hosny +(c) 2010 by Pablo Impallari +Copyright (c) 2010 by Pablo Impallari +(c) 2010 by Pablo Impallari. www.impallari.com +Copyright (c) 2010 by Pablo Impallari. www.impallari.com +(c) 2001-2010 by the STI Pub Companies +Copyright (c) 2001-2011 by the STI Pub Companies +Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic +Copyright 2015 c +Copyright 1997, 2009, 2011 c American Mathematical Society LCopyright (c) 2001-2010 by the STI Pub Companies -PCopyright (c) 2010-2013 by tyPoland Lukasz Dziedzic -X11R4 release, copyright M.I.T. ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 @@ -9662,133 +12410,9 @@ OTHER DEALINGS IN THE FONT SOFTWARE. ---- -LICENSE ISSUES - ============== - - The OpenSSL toolkit stays under a dual license, i.e. both the conditions of - the OpenSSL License and the original SSLeay license apply to the toolkit. - See below for the actual license texts. Actually both licenses are BSD-style - Open Source licenses. In case of any license issues related to OpenSSL - please contact openssl-core@openssl.org. - - OpenSSL License - --------------- - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - -4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - -5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - -6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - -THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. - - -This product includes cryptographic software written by Eric Young -(eay@cryptsoft.com). This product includes software written by Tim -Hudson (tjh@cryptsoft.com). - - - Original SSLeay License - ----------------------- - -Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -All rights reserved. - -This package is an SSL implementation written -by Eric Young (eay@cryptsoft.com). -The implementation was written so as to conform with Netscapes SSL. - -This library is free for commercial and non-commercial use as long as -the following conditions are aheared to. The following conditions -apply to all code found in this distribution, be it the RC4, RSA, -lhash, DES, etc., code; not just the SSL code. The SSL documentation -included with this distribution is covered by the same copyright terms -except that the holder is Tim Hudson (tjh@cryptsoft.com). - -Copyright remains Eric Young's, and as such any Copyright notices in -the code are not to be removed. -If this package is used in a product, Eric Young should be given attribution -as the author of the parts of the library used. -This can be in the form of a textual message at program startup or -in documentation (online or textual) provided with the package. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - "This product includes cryptographic software written by - Eric Young (eay@cryptsoft.com)" - The word 'cryptographic' can be left out if the rouines from the library - being used are not cryptographic related :-). -4. If you include any Windows specific code (or a derivative thereof) from - the apps directory (application code) you must include an acknowledgement: - "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - -THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -The licence and distribution terms for any publically available version or -derivative of this code cannot be changed. i.e. this code cannot simply be -copied and put under another distribution licence -[including the GNU Public Licence.] - ----- - -Copyright (C) Christian Heimes -Copyright (C) Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee -Copyright (C) John D. Hunter, Michael Droettboom +Copyright (c) 2010-2019 Daniele Varrazzo Copyright (c) 2001-2019 Python Software Foundation +Copyright (c) 2020-2021 The Psycopg Team PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 @@ -9803,44 +12427,29 @@ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 ---- -(c) 1988 Date July, -(c) 2013 title 0.09734s from fe2.rs.github.com' GitHub, Inc. +Copyright (c) 2003-2004 Andrew Straw, Jeremy O'Donoghue and others (c) Better News -(c) Compute Hessian H -(c) Good News -(c) Hello Jack -COPYRIGHT Django Software Foundation and contributors -Copyright (c) 1991-1995 Stichting Mathematisch Centrum Amsterdam, The Netherlands Copyright (c) 1995-2001 Corporation for National Research Initiatives -Copyright (c) 2001 present Python Software Foundation -Copyright (c) 2001-2018 Python Software Foundation +COPYRIGHT Django Software Foundation and contributors +copyright Django Software Foundation and contributors Copyright (c) 2002 Drew Perttula -Copyright (c) 2003-2004 Andrew Straw, Jeremy O'Donoghue and others +Copyright (c) 1995-1998, 2000-2010 Free Software Foundation, Inc. +(c) Good News +Copyright (c) 2010 Guilherme Gondim +(c) Hello Jack +Copyright (c) 2012 Lambda Foundry, Inc. +Copyright (c) 2002 Michael Ringgaard +Copyright (c) 2009 Oyvind Sean Kinsey, oyvind@kinsey.no +copyright Python (Monty) Pictures +Copyright (c) 2001-2022 Python Software Foundation Copyright (c) 2007 Sally Copyright (c) 2007 Sally Smith Copyright (c) 2007 Sally Smith Hard-coded -Copyright (c) 2009 Oyvind Sean Kinsey, oyvind@kinsey.no Copyright (c) 2009 Simon Willison -Copyright (c) 2010 David Fong and Michael Saunders -Copyright (c) 2010 Guilherme Gondim -Copyright (c) 2013-2017 by Christian Heimes -Copyright (c) 2013-2017 by Christian Heimes -Copyright (c) 2014 Eric Moore -Copyright (c) 2018 Sylvain Gubian , Yang Xiang -Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct -Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier -Copyright 2004-2005 by Enthought, Inc. -Copyright 2008 Anne M. Archibald -Copyright 2013 Andrea Gavana -Copyright 2014 Eric W. Moore -Copyright 2014 PSF. -copyright 2008 s, The SciPy community -copyright 2013 Surya Kasturi and Pauli Virtanen -copyright Cephes Math -copyright Django Software Foundation and contributors -copyright Python (Monty) Pictures -copyrighted 2004 by David M. Cooke -Csp self.spmatrix (c) Dsp +Copyright (c) 1991-1995 Stichting Mathematisch Centrum Amsterdam, The Netherlands +Copyright 2021 Taneli Hukkinen +Copyright (c) 2001 present Python Software Foundation +(c) 2013 title 0.09734s from fe2.rs.github.com' GitHub, Inc. PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- @@ -10037,10 +12646,28 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ---- +Copyright 1987 A. Volgenant/Amsterdam School of Economics, University of Amsterdam +Copyright 2013 Andrea Gavana Copyright (c) 1993-2019 C.B. Barber +(c) Compute Hessian H +(c) 1988 Date July, +Copyright (c) 2010 David Fong and Michael Saunders +Copyright (c) 2014 Eric Moore +Copyright 2014 Eric W. Moore +Copyright 2002 Gary Strangman +(c) KOKOKOKOKKuKyKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKyK KyKxKzKzKzKzKzKzKzKzKzKzKzKzKyKxKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzKzK K K KzK K +Copyright (c) 2012 Massachusetts Institute of Technology +Copyright (c) 2018 Sylvain Gubian , Yang Xiang Copyright (c) 1993-2019 The Geometry Center -Qhull, Copyright (c) 1993-2015 -Qhull, Copyright (c) 1993-2019 +Copyright (c) 2003-2009 The Regents of the University of California, through Lawrence Berkeley National Laboratory +Copyright 2002-2016 The SciPy Developers +Copyright (c) 2016 Wenzel Jakob +Copyright 2004-2005 by Enthought, Inc. +Copyright 1984-1985, 1987-1989, 1992, 1995-1996, 2000 by Stephen L. Moshier +Copyright 1984-1985, 1987-1989, 1991-1993 by Stephen L. Moshier Direct +copyright 2008 s, The SciPy community +Csp self.spmatrix (c) Dsp +Gamma (c) Gamma (c) Qhull, Copyright (c) 1993-2003 @@ -10062,11 +12689,326 @@ This software includes Qhull from The Geometry Center. Qhull is copyrighted as n ---- -Copyright (c) 1987-1994 The Regents of the University of California +Sun Industry Standards Source License - Version 1.1 + + 1.0 DEFINITIONS + + 1.1 "Commercial Use" means distribution or otherwise making the + Original Code available to a third party. + + 1.2 "Contributor Version" means the combination of the Original Code, + and the Modifications made by that particular Contributor. + + 1.3 "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.4 "Executable" means Original Code in any form other than Source + Code. + + 1.5 "Initial Developer" means the individual or entity identified as + the Initial Developer in the Source Code notice required by Exhibit A. + + 1.6 "Larger Work" means a work which combines Original Code or + portions thereof with code not governed by the terms of this License. + + 1.7 "License" means this document. + + 1.8 "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9 "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. A Modification is: + A. Any addition to or deletion from the contents of a file containing + Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10 "Original Code" means Source Code of computer software code which + is described in the Source Code notice required by Exhibit A as Original Code. + + 1.11 "Patent Claims" means any patent claim(s), now owned or hereafter + acquired, including without limitation, method, process, and apparatus + claims, in any patent Licensable by grantor. + + 1.12 "Source Code" means the preferred form of the Original Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, or scripts used to control + compilation and installation of an Executable. + + 1.13 "Standards" means the standards identified in Exhibit B. + + 1.14 "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You'' includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control'' means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + + 2.0 SOURCE CODE LICENSE + + 2.1 The Initial Developer Grant + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling + of Original Code, to make, have made, use, practice, sell, and + offer for sale, and/or otherwise dispose of the Original Code (or + portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes Original + Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices, + including but not limited to Modifications. + + 3.0 DISTRIBUTION OBLIGATIONS + + 3.1 Application of License. + The Source Code version of Original Code may be distributed only under + the terms of this License or a future version of this License released + under Section 6.1, and You must include a copy of this License with + every copy of the Source Code You distribute. You may not offer or + impose any terms on any Source Code version that alters or restricts + the applicable version of this License or the recipients' rights + hereunder. Your license for shipment of the Contributor Version is + conditioned upon Your full compliance with this Section. The + Modifications which You create must comply with all requirements set + out by the Standards body in effect one hundred twenty (120) days + before You ship the Contributor Version. In the event that the + Modifications do not meet such requirements, You agree to publish + either (i) any deviation from the Standards protocol resulting from + implementation of Your Modifications and a reference implementation of + Your Modifications or (ii) Your Modifications in Source Code form, and + to make any such deviation and reference implementation or + Modifications available to all third parties under the same terms as + this license on a royalty free basis within thirty (30) days of Your + first customer shipment of Your Modifications. + + 3.2 Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add Your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Initial Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Your version of the Code. + However, You may do so only on Your own behalf, and not on behalf of + the Initial Developer. You must make it absolutely clear than any such + warranty, support, indemnity or liability obligation is offered by You + alone, and You hereby agree to indemnify the Initial Developer for any + liability incurred by the Initial Developer as a result of warranty, + support, indemnity or liability terms You offer. + + 3.3 Distribution of Executable Versions. + You may distribute Original Code in Executable and Source form only if + the requirements of Sections 3.1 and 3.2 have been met for that + Original Code, and if You include a notice stating that the Source + Code version of the Original Code is available under the terms of this + License. The notice must be conspicuously included in any notice in an + Executable or Source versions, related documentation or collateral in + which You describe recipients' rights relating to the Original Code. + You may distribute the Executable and Source versions of Your version + of the Code or ownership rights under a license of Your choice, which + may contain terms different from this License, provided that You are + in compliance with the terms of this License. If You distribute the + Executable and Source versions under a different license You must make + it absolutely clear that any terms which differ from this License are + offered by You alone, not by the Initial Developer. You hereby agree + to indemnify the Initial Developer for any liability incurred by the + Initial Developer as a result of any such terms You offer. + + 3.4 Larger Works. + You may create a Larger Work by combining Original Code with other + code not governed by the terms of this License and distribute the + Larger Work as a single product. In such a case, You must make sure + the requirements of this License are fulfilled for the Original Code. + + 4.0 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Original Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.2 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + + 5.0 APPLICATION OF THIS LICENSE + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Modifications as set + out in Section 3.1. + + 6.0 VERSIONS OF THE LICENSE + + 6.1 New Versions. + Sun may publish revised and/or new versions of the License from time + to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + Once Original Code has been published under a particular version of + the License, You may always continue to use it under the terms of that + version. You may also choose to use such Original Code under the terms + of any subsequent version of the License published by Sun. No one + other than Sun has the right to modify the terms applicable to + Original Code. + + 7.0 DISCLAIMER OF WARRANTY + + ORIGINAL CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE ORIGINAL CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ORIGINAL CODE + IS WITH YOU. SHOULD ANY ORIGINAL CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER) ASSUME THE COST OF ANY NECESSARY + SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY + CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY ORIGINAL + CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8.0 TERMINATION + + 8.1 This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Original Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2 In the event of termination under Section 8.1 above, all end user + license agreements (excluding distributors and resellers) which have + been validly granted by You or any distributor hereunder prior to + termination shall survive termination. + + 9.0 LIMIT OF LIABILITY + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF ORIGINAL CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10.0 U.S. GOVERNMENT END USERS + + U.S. Government: If this Software is being acquired by or on behalf of + the U.S. Government or by a U.S. Government prime contractor or + subcontractor (at any tier), then the Government's rights in the + Software and accompanying documentation shall be only as set forth in + this license; this is in accordance with 48 C.F.R. 227.7201 through + 227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48 + C.F.R. 2.101 and 12.212 (for non-DoD acquisitions). + + 11.0 MISCELLANEOUS + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this License. + + EXHIBIT A - Sun Standards License +"The contents of this file are subject to the Sun Standards +License Version 1.1 (the "License"); +You may not use this file except in compliance with the +License. You may obtain a copy of the +License at . + +Software distributed under the License is distributed on +an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either +express or implied. See the License for the specific +language governing rights and limitations under the License. + +The Original Code is . + +The Initial Developer of the Original Code is: +Sun Microsystems, Inc.. + +Portions created by: + +are Copyright (C): + +All Rights Reserved. + +Contributor(s): + + EXHIBIT B - Standards + + The Standard is defined as the following: + + OpenOffice.org XML File Format Specification, located at + http://xml.openoffice.org + + OpenOffice.org Application Programming Interface Specification, + located at + http://api.openoffice.org + + We welcome your feedback. + CollabNet, Inc. CollabNet is a trademark of CollabNet, Inc. + Sun, Sun Microsystems, the Sun Logo, Solaris, Java, StarOffice, + StarOffice 6.0 and StarSuite 6.0 are trademarks or registered + trademarks of Sun Microsystems, Inc., in the United States and other countries. + +---- + +Copyright (c) 1993 by Sun Microsystems, Inc. + +Developed at SunPro, a Sun Microsystems, Inc. business. + +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + +---- + Copyright (c) 1993-1996 Lucent Technologies Copyright (c) 1994-1998 Sun Microsystems, Inc. -Copyright (c) 1998-2000 by Scriptics Corporation +Copyright (c) 1987-1994 The Regents of the University of California Copyright (c) 2002 by Kevin B. Kenny +Copyright (c) 1998-2000 by Scriptics Corporation copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation This software is copyrighted by the Regents of the University of @@ -10112,6 +13054,35 @@ terms specified in this license. ---- +Portions copyright (c) 1990 by Elsevier, Inc. +Portions copyright (c) 1998-2003 by MicroPress, Inc. +Copyright (c) 2001-2005 by the STI Pub Companies + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from the X Consortium. + +X Window System is a trademark of X Consortium, Inc. + +---- + This license has been certified as open source. It has also been designated as GPL compatible by the Free Software Foundation (FSF). @@ -10153,12 +13124,23 @@ OF SUCH DAMAGE. ---- -Copyright (c) 2008 Canonical Ltd. -Copyright (c) 2008-2019 James Henstridge -Copyright (c) 2010-2019 Daniele Varrazzo -Copyright (c) 2017 My Karlsson -Copyright (c) 2018-2019 Joyent, Inc. -Copyright (c) 2020 The Psycopg Team +Copyright Absoft Corporation +Copyright 1994-2002 Absoft Corporation Absoft Pro FORTRAN +Copyright 1994-1998 Absoft Corporation mV2 Cray Research, Inc. CF90 +(c) Convert Chebyshev +(c) False, False, False, True +(c) False, False, True, False +(c) 1995-2017 Jean-loup Gailly and Mark Adler +Copyright (c) 1995-1997 Jim Hugunin, hugunin@mit.edu +Copyright (c) 2016-2019 Kim Walisch, +Copyright (c) 2021 Microsoft Corporation +(c) Multiply a Chebyshev +(c) Multiply a Hermite +(c) Multiply a Laguerre +(c) Multiply a Legendre +copyright 2008-2022 NumPy Developers +Copyright (c) 2014 Ryan Juckett +(c) True, True, False, False This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this @@ -10178,3 +13160,78 @@ the following restrictions: 3. This notice may not be removed or altered from any source distribution. +---- + +copyright (c) 1996-2019 Julian R Seward + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---- + +Copyright (c) 1988-1997 Sam Leffler +Copyright (c) 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Sam Leffler and Silicon Graphics may not be used in any advertising or +publicity relating to the software without the specific, prior written +permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. + +---- + +Copyright Font's + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear in +supporting documentation. + +This file is provided AS IS with no warranties of any kind. The author +shall have no liability with respect to the infringement of copyrights, +trade secrets or any patents by this file or any part thereof. In no event +will the author be liable for any lost revenue or profits or other special, +indirect and consequential damages. + diff --git a/README.md b/README.md index 05023803..1c00bca4 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,14 @@ Instructions on setting up the MongoDB can be found in the [Database Module](./d The modules should be set up in the following order: -1. [Collector](./docs/collector_module.md) (before others) -2. [Corrector](./docs/corrector_module.md) (after Collector, before others) -3. [Reports](./docs/reports_module.md) (optional, after previous) -4. [Opendata](./docs/opendata_module.md) (optional, after previous) -5. [Networking](./docs/networking_module.md) (optional, after Opendata) -6. [Opendata Collector module](./docs/opendata_collector_module.md) (optional, after Opendata) + - [Database module](./docs/database_module.md) + - [Collector module](./docs/collector_module.md) + - [Corrector module](./docs/corrector_module.md) + - [Reports module](./docs/reports_module.md) + - [Anonymizer module](./docs/anonymizer_module.md) + - [Opendata module](./docs/opendata_module.md) + - [Networking/Visualizer module](./docs/networking_module.md) + - [Opendata Collector module](./docs/opendata_collector_module.md) ## Programming language diff --git a/analysis_module/Makefile b/analysis_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/analysis_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/analysis_module/opmon_analyzer/logger_manager.py b/analysis_module/opmon_analyzer/logger_manager.py index d8481e9d..4352f836 100644 --- a/analysis_module/opmon_analyzer/logger_manager.py +++ b/analysis_module/opmon_analyzer/logger_manager.py @@ -58,7 +58,7 @@ def _create_file_handler(self): def _handler_is_set(self, handlers): for handler in handlers: - if handler is WatchedFileHandler and os.path.abspath(self.log_path) == handler.baseFilename: + if isinstance(handler, WatchedFileHandler) and os.path.abspath(self.log_path) == handler.baseFilename: return True return False diff --git a/analysis_module/setup.py b/analysis_module/setup.py index 3edd8f9f..065508d1 100644 --- a/analysis_module/setup.py +++ b/analysis_module/setup.py @@ -25,12 +25,12 @@ from setuptools import setup, find_packages requirements = [ - 'dill==0.3.1.1', - 'pymongo==3.10.1', - 'pyyaml==5.4.1', + 'dill==0.3.8', + 'pymongo==4.6.3', + 'pyyaml==6.0.1', 'numpy==1.24.4', 'pandas==2.0.3', - 'scipy==1.10.1' + 'scipy==1.10.1', ] classifiers = [ diff --git a/analysis_module/test_requirements.txt b/analysis_module/test_requirements.txt index 430e9352..f0f8e967 100644 --- a/analysis_module/test_requirements.txt +++ b/analysis_module/test_requirements.txt @@ -2,4 +2,5 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html mongomock diff --git a/analysis_module/tox.ini b/analysis_module/tox.ini index b7dcd5a6..410f0fa8 100644 --- a/analysis_module/tox.ini +++ b/analysis_module/tox.ini @@ -5,7 +5,7 @@ envlist = py38 deps = -rtest_requirements.txt install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source opmon_analyzer -m pytest opmon_analyzer/ + coverage run --source opmon_analyzer -m pytest opmon_analyzer/ coverage report --include=opmon_analyzer/* coverage html -d ../htmlcov/analysis_module --include=opmon_analyzer/* diff --git a/analysis_ui_module/Makefile b/analysis_ui_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/analysis_ui_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/analysis_ui_module/opmon_analyzer_ui/logger_manager.py b/analysis_ui_module/opmon_analyzer_ui/logger_manager.py index d8481e9d..4352f836 100644 --- a/analysis_ui_module/opmon_analyzer_ui/logger_manager.py +++ b/analysis_ui_module/opmon_analyzer_ui/logger_manager.py @@ -58,7 +58,7 @@ def _create_file_handler(self): def _handler_is_set(self, handlers): for handler in handlers: - if handler is WatchedFileHandler and os.path.abspath(self.log_path) == handler.baseFilename: + if isinstance(handler, WatchedFileHandler) and os.path.abspath(self.log_path) == handler.baseFilename: return True return False diff --git a/analysis_ui_module/setup.py b/analysis_ui_module/setup.py index 5eececcc..90b69517 100644 --- a/analysis_ui_module/setup.py +++ b/analysis_ui_module/setup.py @@ -25,10 +25,10 @@ from setuptools import setup, find_packages requirements = [ - 'dill==0.3.1.1', + 'dill==0.3.8', 'django==2.2.28', - 'pymongo==3.10.1', - 'pyyaml==5.4.1', + 'pymongo==4.6.3', + 'pyyaml==6.0.1', 'numpy==1.24.4' ] diff --git a/analysis_ui_module/test_requirements.txt b/analysis_ui_module/test_requirements.txt index 430e9352..f0f8e967 100644 --- a/analysis_ui_module/test_requirements.txt +++ b/analysis_ui_module/test_requirements.txt @@ -2,4 +2,5 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html mongomock diff --git a/analysis_ui_module/tox.ini b/analysis_ui_module/tox.ini index e5db9810..a520daf6 100644 --- a/analysis_ui_module/tox.ini +++ b/analysis_ui_module/tox.ini @@ -5,7 +5,7 @@ envlist = py38 deps = -rtest_requirements.txt install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source opmon_analyzer_ui -m pytest opmon_analyzer_ui/ + coverage run --source opmon_analyzer_ui -m pytest opmon_analyzer_ui/ coverage report --include=opmon_analyzer_ui/* coverage html -d ../htmlcov/analysis_ui_module --include=opmon_analyzer_ui/* diff --git a/anonymizer_module/Makefile b/anonymizer_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/anonymizer_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/anonymizer_module/etc/settings.yaml b/anonymizer_module/etc/settings.yaml index 7a7ce454..c415af7e 100644 --- a/anonymizer_module/etc/settings.yaml +++ b/anonymizer_module/etc/settings.yaml @@ -10,8 +10,8 @@ xroad: instance: - # Security server used to collect member statistics - security-server: + # Central Server global conf used to collect member statistics + central-server: protocol: http:// host: timeout: 60.0 diff --git a/anonymizer_module/metrics_statistics/statistics_manager.py b/anonymizer_module/metrics_statistics/statistics_manager.py index 678ab061..f5132bd1 100644 --- a/anonymizer_module/metrics_statistics/statistics_manager.py +++ b/anonymizer_module/metrics_statistics/statistics_manager.py @@ -37,9 +37,9 @@ def collect_statistics(settings: dict, logger: Logger, output_only: bool = False statistics: StatisticalData = { **requests_counts, - **{'member_count': json.dumps(member_counts)}, - **{'service_count': len(services)}, - **{'service_request_count': json.dumps(services_counts)} + 'member_count': json.dumps(member_counts), + 'service_count': len(services), + 'service_request_count': json.dumps(services_counts) } if output_only: logger.info('Metrics statistical data:\n\n%s', pformat(statistics, indent=2, width=2)) diff --git a/anonymizer_module/opmon_anonymizer/__init__.py b/anonymizer_module/opmon_anonymizer/__init__.py index 80e48ed8..c64fb837 100644 --- a/anonymizer_module/opmon_anonymizer/__init__.py +++ b/anonymizer_module/opmon_anonymizer/__init__.py @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -__version__ = '1.2.0' +__version__ = '1.3.0' diff --git a/anonymizer_module/opmon_anonymizer/utils/logger_manager.py b/anonymizer_module/opmon_anonymizer/utils/logger_manager.py index b40a849b..e90a48c8 100644 --- a/anonymizer_module/opmon_anonymizer/utils/logger_manager.py +++ b/anonymizer_module/opmon_anonymizer/utils/logger_manager.py @@ -58,7 +58,7 @@ def _create_file_handler(self): def _handler_is_set(self, handlers): for handler in handlers: - if handler is WatchedFileHandler and os.path.abspath(self.log_path) == handler.baseFilename: + if isinstance(handler, WatchedFileHandler) and os.path.abspath(self.log_path) == handler.baseFilename: return True return False diff --git a/anonymizer_module/setup.py b/anonymizer_module/setup.py index ca388345..ccb649af 100644 --- a/anonymizer_module/setup.py +++ b/anonymizer_module/setup.py @@ -26,10 +26,10 @@ requirements = [ 'setuptools==67.4.0', - 'pymongo==3.10.1', - 'pyyaml==5.4.1', - 'psycopg2==2.8.6', - 'python-dateutil==2.8.1', + 'pymongo==4.6.3', + 'pyyaml==6.0.1', + 'psycopg2==2.9.9', + 'python-dateutil==2.9.0.post0', ] classifiers = [ diff --git a/anonymizer_module/test_requirements.txt b/anonymizer_module/test_requirements.txt index ad434c9b..827115d4 100644 --- a/anonymizer_module/test_requirements.txt +++ b/anonymizer_module/test_requirements.txt @@ -2,6 +2,7 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html mongomock psycopg2-binary mypy diff --git a/anonymizer_module/tox.ini b/anonymizer_module/tox.ini index 049b894d..6b39fcd7 100644 --- a/anonymizer_module/tox.ini +++ b/anonymizer_module/tox.ini @@ -5,10 +5,9 @@ envlist = py38-{pytest,mypy} deps = -rtest_requirements.txt install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source opmon_anonymizer -m pytest opmon_anonymizer/ + coverage run --source opmon_anonymizer,metrics_statistics -m pytest opmon_anonymizer/ metrics_statistics/ coverage report --include=opmon_anonymizer/* coverage html -d ../htmlcov/anonymizer_module --include=opmon_anonymizer/* - - coverage run --source metrics_statistics -m pytest metrics_statistics/ [testenv:py38-mypy] description = Run mypy deps = diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml deleted file mode 100644 index 9ca8a249..00000000 --- a/bitbucket-pipelines.yml +++ /dev/null @@ -1,32 +0,0 @@ -#------------------------------------------------ -# Bitbucket Pipeline -#------------------------------------------------ - -image: ubuntu:16.04 - -pipelines: - default: - - step: - script: - - apt-get update - - apt-get install -y python3-pip - - apt-get install -y python3-dev python-lxml python-cffi libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk - - pip3 install python-dateutil==2.6.0 - - pip3 install pyyaml==3.12 - - pip3 install pytest - - pip3 install pytest-pep8 - - pip3 install pymongo==3.3.0 - - pip3 install psycopg2==2.7.1 - - pip3 install django==1.10.5 - - pip3 install elasticsearch==5.1.0 - - pip3 install numpy==1.11.3 - - pip3 install pandas==0.20.3 - - pip3 install Pillow==4.2.1 - - pip3 install requests==2.13.0 - - pip3 install tinycss==0.4 - - pip3 install tqdm==4.14 - - pip3 install WeasyPrint==0.39 - - pip3 install scipy==0.19.1 - - pip3 install matplotlib==2.0.2 - - pip3 install jinja2==2.9.6 - - bash run_tests.sh diff --git a/collector_module/Makefile b/collector_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/collector_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/collector_module/etc/settings.yaml b/collector_module/etc/settings.yaml index 06fba5e7..e95ab55f 100644 --- a/collector_module/etc/settings.yaml +++ b/collector_module/etc/settings.yaml @@ -67,6 +67,12 @@ xroad: protocol: http:// host: timeout: 10 + # path to client's certificate + tls-client-certificate: + # path to client's private key + tls-client-key: + # path to server's certificate, or False to disable server certificate verification + tls-server-certificate: # Security server used to contact security-server: @@ -77,7 +83,7 @@ xroad: tls-client-certificate: # path to client's private key tls-client-key: - # path to server's certificate + # path to server's certificate, or False to disable server certificate verification tls-server-certificate: # X-Road service configuration used to fetch operational monitoring requests. diff --git a/collector_module/opmon_collector/__init__.py b/collector_module/opmon_collector/__init__.py index 80e48ed8..c64fb837 100644 --- a/collector_module/opmon_collector/__init__.py +++ b/collector_module/opmon_collector/__init__.py @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -__version__ = '1.2.0' +__version__ = '1.3.0' diff --git a/collector_module/opmon_collector/central_server_client.py b/collector_module/opmon_collector/central_server_client.py index eb904bb5..892f7d09 100644 --- a/collector_module/opmon_collector/central_server_client.py +++ b/collector_module/opmon_collector/central_server_client.py @@ -28,8 +28,14 @@ class CentralServerClient: def __init__(self, xroad_settings, logger_m): - self.url = f"{xroad_settings['central-server']['protocol']}{xroad_settings['central-server']['host']}" - self.timeout = xroad_settings['central-server']['timeout'] + central_server_settings = xroad_settings['central-server'] + self.url = f"{central_server_settings['protocol']}{central_server_settings['host']}" + self.timeout = central_server_settings['timeout'] + self.server_cert = central_server_settings.get('tls-server-certificate') + self.client_cert = ( + central_server_settings.get('tls-client-certificate'), + central_server_settings.get('tls-client-key') + ) self.logger_m = logger_m def get_security_servers(self): @@ -43,13 +49,15 @@ def get_security_servers(self): def _get_shared_params(self): internal_conf_url = f'{self.url}/internalconf' - global_conf = requests.get(internal_conf_url, timeout=self.timeout) + global_conf = requests.get(internal_conf_url, timeout=self.timeout, cert=self.client_cert, + verify=self.server_cert) global_conf.raise_for_status() # NB! re.search global configuration regex might be changed # according version naming or other future naming conventions data = global_conf.content.decode('utf-8') s = re.search(r'Content-location: (/V\d+/\d+/shared-params.xml)', data) - shared_params = requests.get(f'{self.url}{s.group(1)}', timeout=self.timeout) + shared_params = requests.get(f'{self.url}{s.group(1)}', timeout=self.timeout, + cert=self.client_cert, verify=self.server_cert) shared_params.raise_for_status() return shared_params diff --git a/collector_module/opmon_collector/logger_manager.py b/collector_module/opmon_collector/logger_manager.py index b40a849b..e90a48c8 100644 --- a/collector_module/opmon_collector/logger_manager.py +++ b/collector_module/opmon_collector/logger_manager.py @@ -58,7 +58,7 @@ def _create_file_handler(self): def _handler_is_set(self, handlers): for handler in handlers: - if handler is WatchedFileHandler and os.path.abspath(self.log_path) == handler.baseFilename: + if isinstance(handler, WatchedFileHandler) and os.path.abspath(self.log_path) == handler.baseFilename: return True return False diff --git a/collector_module/setup.py b/collector_module/setup.py index a72a1c0e..a11b512c 100644 --- a/collector_module/setup.py +++ b/collector_module/setup.py @@ -26,11 +26,11 @@ requirements = [ 'setuptools==67.4.0', - 'pymongo==3.10.1', - 'requests==2.31.0', - 'tqdm==4.30.0', - 'pyyaml==5.4.1', - 'urllib3==1.26.14', + 'pymongo==4.6.3', + 'requests==2.32.3', + 'tqdm==4.66.4', + 'pyyaml==6.0.1', + 'urllib3==1.26.18', ] classifiers = [ diff --git a/collector_module/test_requirements.txt b/collector_module/test_requirements.txt index 384fa1c0..1c59893f 100644 --- a/collector_module/test_requirements.txt +++ b/collector_module/test_requirements.txt @@ -2,5 +2,6 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html responses mongomock diff --git a/collector_module/tox.ini b/collector_module/tox.ini index 8c5e0f0b..617b002c 100644 --- a/collector_module/tox.ini +++ b/collector_module/tox.ini @@ -5,7 +5,7 @@ envlist = py38 deps = -rtest_requirements.txt install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source opmon_collector,opmon_mongodb_maintenance -m pytest opmon_collector/ opmon_mongodb_maintenance/ + coverage run --source opmon_collector,opmon_mongodb_maintenance -m pytest opmon_collector/ opmon_mongodb_maintenance/ coverage report --include=opmon_collector/*,opmon_mongodb_maintenance/* coverage html -d ../htmlcov/collector_module --include=opmon_collector/*,opmon_mongodb_maintenance/* diff --git a/corrector_module/Makefile b/corrector_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/corrector_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/corrector_module/opmon_corrector/__init__.py b/corrector_module/opmon_corrector/__init__.py index 912e1f19..e83f3e04 100644 --- a/corrector_module/opmon_corrector/__init__.py +++ b/corrector_module/opmon_corrector/__init__.py @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -__version__ = '1.2.0' +__version__ = '1.3.0' SECURITY_SERVER_TYPE_CLIENT = 'client' SECURITY_SERVER_TYPE_PRODUCER = 'producer' diff --git a/corrector_module/opmon_corrector/corrector_batch.py b/corrector_module/opmon_corrector/corrector_batch.py index a73a941a..ad46d23c 100644 --- a/corrector_module/opmon_corrector/corrector_batch.py +++ b/corrector_module/opmon_corrector/corrector_batch.py @@ -21,7 +21,6 @@ # THE SOFTWARE. import multiprocessing -import queue import time from collections import defaultdict @@ -53,11 +52,12 @@ def run(self, process_dict): # Raise exception again raise e - def _process_workers(self, list_to_process, duplicates): + def _process_workers(self, list_to_process, duplicates, job_type='consume'): """ Processes the workers in a thread pool. :param list_to_process: queue of items to be processed by the worker processes - :param duplicates: a shared Value object to store the number of duplicates encountered during processing + :param duplicates: a shared Value object to store the number of duplicates encountered + during processing : return: None """ # Configure worker @@ -66,7 +66,7 @@ def _process_workers(self, list_to_process, duplicates): # Configure worker worker = CorrectorWorker(self.settings, f'worker_{i}') p = multiprocessing.Process( - target=worker.run, args=(list_to_process, duplicates) + target=worker.run, args=(list_to_process, duplicates, job_type) ) pool.append(p) @@ -79,9 +79,10 @@ def _process_workers(self, list_to_process, duplicates): def _batch_run(self, process_dict): """ - Gets unique xRequestId's, gets documents by xRequestId, corrects documents, unitializes workers, - gets raw documents, groups by "messageId", corrects documents' structure, initializes workers, - updates timeout documents to "done", removes duplicates from raw_messages. + Gets unique xRequestId's, gets documents by xRequestId, corrects documents, initializes + workers, gets raw documents, groups by "messageId", corrects documents' structure, + initializes workers, updates timeout documents to "done", removes duplicates from + raw_messages. :param process_dict: :return: Returns the amount of documents still to process. """ @@ -97,25 +98,20 @@ def _batch_run(self, process_dict): limit = self.settings['corrector']['documents-max'] cursor = db_m.get_raw_documents(limit) - self.logger_m.log_info('corrector_batch_raw', 'Processing {0} raw documents'.format(len(cursor))) + self.logger_m.log_info('corrector_batch_raw', f'Processing {len(cursor)} raw documents.') # Process documents with xRequestId doc_map = defaultdict(list) for _doc in cursor: - sanitised_doc = document_manager.DocumentManager.sanitise_document(_doc) - x_request_id = sanitised_doc.get('xRequestId') + x_request_id = _doc.get('xRequestId') if not x_request_id: continue - fix_doc = doc_m.correct_structure(sanitised_doc) - doc_map[x_request_id].append(fix_doc) + doc_map[x_request_id].append(_doc) # Build queue to be processed list_to_process = multiprocessing.Queue() duplicates = multiprocessing.Value('i', 0, lock=True) - m = multiprocessing.Manager() - to_remove_queue = m.Queue() - for x_request_id in doc_map: documents = doc_map[x_request_id] data = dict() @@ -123,87 +119,68 @@ def _batch_run(self, process_dict): data['document_manager'] = doc_m data['x_request_id'] = x_request_id data['documents'] = documents - data['to_remove_queue'] = to_remove_queue list_to_process.put(data) doc_len += len(documents) self._process_workers(list_to_process, duplicates) - # Go through the to_remove list and remove the duplicates - element_in_queue = True - total_raw_removed = 0 - while element_in_queue: - try: - # Do not block queue and return element immediately else raise the queue.Empty - element = to_remove_queue.get(block=False) - db_m.remove_duplicate_from_raw(element) - total_raw_removed += 1 - except queue.Empty: - element_in_queue = False - if total_raw_removed > 0: - self.logger_m.log_info('corrector_batch_remove_duplicates_from_raw', - 'Total of {0} duplicate documents removed from raw messages.'.format( - total_raw_removed)) + if duplicates.value > 0: + self.logger_m.log_info( + 'corrector_batch_remove_duplicates_from_raw', + f'Total of {duplicates.value} duplicate documents removed from raw messages.') else: - self.logger_m.log_info('corrector_batch_remove_duplicates_from_raw', - 'No raw documents marked to removal.') - - doc_len += total_raw_removed + self.logger_m.log_info( + 'corrector_batch_remove_duplicates_from_raw', + 'No raw documents marked to removal.') # Process documents without xRequestId cursor = db_m.get_faulty_raw_documents(limit) - self.logger_m.log_info('corrector_batch_raw', 'Processing {0} faulty raw documents'.format(len(cursor))) - - for _doc in cursor: - sanitised_doc = document_manager.DocumentManager.sanitise_document(_doc) - fixed_doc = doc_m.correct_structure(sanitised_doc) - producer = fixed_doc if fixed_doc['securityServerType'].lower() == SECURITY_SERVER_TYPE_PRODUCER else None - client = fixed_doc if fixed_doc['securityServerType'].lower() == SECURITY_SERVER_TYPE_CLIENT else None - cleaned_document = doc_m.create_json( - client, producer, '' - ) - cleaned_document = doc_m.apply_calculations(cleaned_document) - cleaned_document['correctorTime'] = database_manager.get_timestamp() - cleaned_document['correctorStatus'] = 'done' - cleaned_document['xRequestId'] = '' - cleaned_document['matchingType'] = 'orphan' - cleaned_document['messageId'] = fixed_doc.get('message_id') or '' - db_m.add_to_clean_data(cleaned_document) - db_m.mark_as_corrected(fixed_doc) - + self.logger_m.log_info( + 'corrector_batch_raw', f'Processing {len(cursor)} faulty raw documents') + if len(cursor) > 0: + doc_len += len(cursor) + list_to_process = multiprocessing.Queue() + for _doc in cursor: + data = dict() + data['logger_manager'] = self.logger_m + data['document_manager'] = doc_m + data['document'] = _doc + list_to_process.put(data) + self._process_workers(list_to_process, None, 'faulty') + + # Updating Status of older documents from processing to done timeout = self.settings['corrector']['timeout-days'] - self.logger_m.log_info('corrector_batch_update_timeout', - f'Updating timed out [{timeout} days] orphans to done.') - - # Update Status of older documents according to client.requestInTs - - cursor = db_m.get_timeout_documents_client(timeout, limit=limit) - list_of_docs = list(cursor) - number_of_updated_docs = db_m.update_old_to_done(list_of_docs) - - if number_of_updated_docs > 0: - self.logger_m.log_info('corrector_batch_update_client_old_to_done', - "Total of {0} orphans from Client updated to status 'done'.".format( - number_of_updated_docs)) + self.logger_m.log_info( + 'corrector_batch_update_timeout', + f'Updating timed out [{timeout} days] orphans to done.') + + list_of_doc_ids_client = db_m.get_timeout_document_ids_client(timeout, limit=limit) + list_of_doc_ids_producer = db_m.get_timeout_document_ids_producer(timeout, limit=limit) + list_of_doc_ids = list_of_doc_ids_client + list_of_doc_ids_producer + if len(list_of_doc_ids) > 0: + doc_len += len(list_of_doc_ids) + list_to_process = multiprocessing.Queue() + for _doc in list_of_doc_ids: + list_to_process.put(_doc['_id']) + self._process_workers(list_to_process, None, 'timeout') + + if len(list_of_doc_ids_client) > 0: + self.logger_m.log_info( + 'corrector_batch_update_client_old_to_done', + f'Total of {len(list_of_doc_ids_client)} orphans from Client ' + "updated to status 'done'.") else: - self.logger_m.log_info('corrector_batch_update_client_old_to_done', - 'No orphans updated to done.') - doc_len += number_of_updated_docs - - # Update Status of older documents according to producer.requestInTs - cursor = db_m.get_timeout_documents_producer(timeout, limit=limit) - list_of_docs = list(cursor) - number_of_updated_docs = db_m.update_old_to_done(list_of_docs) - - if number_of_updated_docs > 0: - self.logger_m.log_info('corrector_batch_update_producer_old_to_done', - "Total of {0} orphans from Producer updated to status 'done'.".format( - number_of_updated_docs)) + self.logger_m.log_info( + 'corrector_batch_update_client_old_to_done', 'No orphans updated to done.') + + if len(list_of_doc_ids_producer) > 0: + self.logger_m.log_info( + 'corrector_batch_update_producer_old_to_done', + f'Total of {len(list_of_doc_ids_producer)} orphans from Producer ' + "updated to status 'done'.") else: - self.logger_m.log_info('corrector_batch_update_producer_old_to_done', - 'No orphans updated to done.') - - doc_len += number_of_updated_docs + self.logger_m.log_info( + 'corrector_batch_update_producer_old_to_done', 'No orphans updated to done.') end_processing_time = time.time() total_time = time.strftime( diff --git a/corrector_module/opmon_corrector/corrector_worker.py b/corrector_module/opmon_corrector/corrector_worker.py index 6ebbeaec..dd6bca26 100644 --- a/corrector_module/opmon_corrector/corrector_worker.py +++ b/corrector_module/opmon_corrector/corrector_worker.py @@ -1,4 +1,3 @@ - # The MIT License # Copyright (c) 2021- Nordic Institute for Interoperability Solutions (NIIS) # Copyright (c) 2017-2020 Estonian Information System Authority (RIA) @@ -36,10 +35,11 @@ def __init__(self, settings, name): self.db_m = None self.worker_name = name - def run(self, to_process, duplicates): + def run(self, to_process, duplicates, job_type='consume'): """ Process run entry point :param to_process: Queue of documents to be processed :param duplicates: Variable to hold the number of duplicates + :param job_type: Job type (consume / timeout) :return: None """ self.db_m = database_manager.DatabaseManager(self.settings) @@ -47,25 +47,34 @@ def run(self, to_process, duplicates): # Process queue while is not empty while True: data = to_process.get(True, 1) - duplicate_count = self.consume_data(data) - with duplicates.get_lock(): - duplicates.value += duplicate_count + if job_type == 'consume': + duplicate_count = self.consume_data(data) + with duplicates.get_lock(): + duplicates.value += duplicate_count + elif job_type == 'faulty': + self.consume_faulty_data(data) + elif job_type == 'timeout': + self.db_m.update_old_doc_to_done(data) except queue.Empty: pass def consume_data(self, data): """ The Corrector worker. Processes a batch of documents with the same xRequestId - :param data: Contains LoggerManager, DatabaseManager, DocumentManager, x_request_id and documents to be processed. + :param data: Contains LoggerManager, DocumentManager, x_request_id and documents to be + processed. :return: Returns number of duplicates found. """ # Get parameters - logger_manager = data['logger_manager'] + # logger_manager = data['logger_manager'] doc_m = data['document_manager'] x_request_id = data['x_request_id'] - documents = data['documents'] - to_remove_queue = data['to_remove_queue'] - duplicates = no_requestInTs = 0 + documents = [] + for _doc in data['documents']: + sanitized_doc = doc_m.sanitize_document(_doc) + fix_doc = doc_m.correct_structure(sanitized_doc) + documents.append(fix_doc) + duplicates = 0 matched_pair = {} clients = [ @@ -78,10 +87,12 @@ def consume_data(self, data): ] if clients: - matched_pair['client'] = clients[0] + if not self.db_m.check_clean_document_exists(x_request_id, clients[0]): + matched_pair['client'] = clients[0] if producers: - matched_pair['producer'] = producers[0] + if not self.db_m.check_clean_document_exists(x_request_id, producers[0]): + matched_pair['producer'] = producers[0] docs_to_remove = [ doc for doc in documents @@ -91,39 +102,13 @@ def consume_data(self, data): ) ] for current_document in docs_to_remove: - - # Mark to removal documents without requestInTs immediately (as of bug in xRoad software ver 6.22.0) # noqa - if ( - current_document['requestInTs'] is None - and current_document['securityServerType'] is None - ): - to_remove_queue.put(current_document['_id']) - no_requestInTs += 1 - self.db_m.mark_as_corrected(current_document) - """ - :logger_manager.log_warning('no_requestInTs', - :'_id : ObjectId(\'' + str(current_document['_id']) + '\'), - :messageId : ' + str(current_document['messageId'])) - """ - continue - - if self.db_m.check_clean_document_exists( - x_request_id, current_document - ): - to_remove_queue.put(current_document['_id']) - duplicates += 1 - self.db_m.mark_as_corrected(current_document) - continue - - # duplicates - to_remove_queue.put(current_document['_id']) + self.db_m.remove_duplicate_from_raw(current_document['_id']) duplicates += 1 - self.db_m.mark_as_corrected(current_document) """ :logger_manager.log_warning('batch_duplicated', :'_id : ObjectId(\'' + str(current_document['_id']) + '\'), :messageId : ' + str(current_document['messageId'])) - """ + """ if not matched_pair: return duplicates @@ -167,8 +152,31 @@ def consume_data(self, data): for party in matched_pair: self.db_m.mark_as_corrected(matched_pair[party]) - if no_requestInTs: - msg = '[{0}] {1} document(s) without requestInTs present'.format(self.worker_name, no_requestInTs) - logger_manager.log_warning('corrector_no_requestInTs', msg) - return duplicates + + def consume_faulty_data(self, data): + """ + The Corrector worker for faulty documents without xRequestId. + :param data: Contains LoggerManager, DocumentManager and document to be processed. + :return: None. + """ + # Get parameters + # logger_manager = data['logger_manager'] + doc_m = data['document_manager'] + sanitized_doc = doc_m.sanitize_document(data['document']) + fixed_doc = doc_m.correct_structure(sanitized_doc) + producer = fixed_doc if ( + fixed_doc['securityServerType'].lower() == SECURITY_SERVER_TYPE_PRODUCER) else None + client = fixed_doc if ( + fixed_doc['securityServerType'].lower() == SECURITY_SERVER_TYPE_CLIENT) else None + cleaned_document = doc_m.create_json( + client, producer, '' + ) + cleaned_document = doc_m.apply_calculations(cleaned_document) + cleaned_document['correctorTime'] = database_manager.get_timestamp() + cleaned_document['correctorStatus'] = 'done' + cleaned_document['xRequestId'] = '' + cleaned_document['matchingType'] = 'orphan' + cleaned_document['messageId'] = fixed_doc.get('message_id') or '' + self.db_m.add_to_clean_data(cleaned_document) + self.db_m.mark_as_corrected(fixed_doc) diff --git a/corrector_module/opmon_corrector/database_manager.py b/corrector_module/opmon_corrector/database_manager.py index 5d7da25a..88cdb557 100644 --- a/corrector_module/opmon_corrector/database_manager.py +++ b/corrector_module/opmon_corrector/database_manager.py @@ -157,12 +157,13 @@ def get_processing_document(self, current_doc: dict) -> Optional[dict]: self.logger_m.log_exception('DatabaseManager.get_processing_documents', repr(e)) raise e - def get_timeout_documents_client(self, timeout_days: int, limit: int = 1000) -> List[dict]: + def get_timeout_document_ids_client(self, timeout_days: int, limit: int = 1000) -> List[dict]: """ - Gets the documents from Client that have been processing more than timeout_days. + Gets the document ids (without other fields) from Client that have been processing more + than timeout_days. :param timeout_days: The timeout days. - :param limit: Number of documents to return. - :return: Returns the documents that have been processing more than timeout_days. + :param limit: Number of document ids to return. + :return: Returns the document ids that have been processing more than timeout_days. """ try: db = self.get_query_db() @@ -173,18 +174,20 @@ def get_timeout_documents_client(self, timeout_days: int, limit: int = 1000) -> 'client.requestInTs': {'$lt': ref_time}, 'client.xRequestId': {'$ne': None} } - cursor = clean_data.find(q).limit(limit) + cursor = clean_data.find(q, {'_id': True}).limit(limit) return list(cursor) except Exception as e: - self.logger_m.log_exception('DatabaseManager.get_timeout_documents_client', repr(e)) + self.logger_m.log_exception( + 'DatabaseManager.get_timeout_document_ids_client', repr(e)) raise e - def get_timeout_documents_producer(self, timeout_days: int, limit: int = 1000) -> List[dict]: + def get_timeout_document_ids_producer(self, timeout_days: int, limit: int = 1000) -> List[dict]: """ - Gets the documents from Producer that have been processing more than timeout_days. + Gets the document ids (without other fields) from Producer that have been processing more + than timeout_days. :param timeout_days: The timeout days. - :param limit: Number of documents to return. - :return: Returns the documents that have been processing more than timeout_days. + :param limit: Number of document ids to return. + :return: Returns the document ids that have been processing more than timeout_days. """ try: db = self.get_query_db() @@ -192,14 +195,17 @@ def get_timeout_documents_producer(self, timeout_days: int, limit: int = 1000) - ref_time = 1000 * (get_timestamp() - (timeout_days * 24 * 60 * 60)) q = { 'correctorStatus': 'processing', - 'client.requestInTs': {'$exists': False}, + # This check does not seem to be necessary. + # Documents with both client and producer should never be in "processing" state. + # 'client.requestInTs': {'$exists': False}, 'producer.requestInTs': {'$lt': ref_time}, 'producer.xRequestId': {'$ne': None} } - cursor = clean_data.find(q).limit(limit) + cursor = clean_data.find(q, {'_id': True}).limit(limit) return list(cursor) except Exception as e: - self.logger_m.log_exception('DatabaseManager.get_timeout_documents_producer', repr(e)) + self.logger_m.log_exception( + 'DatabaseManager.get_timeout_document_ids_producer', repr(e)) raise e def add_to_clean_data(self, document: dict) -> None: @@ -226,32 +232,27 @@ def update_document_clean_data(self, document: dict) -> None: try: db = self.get_query_db() clean_data = db[CLEAN_DATA_COLLECTION] - clean_data.update({'_id': document['_id']}, document) + clean_data.replace_one({'_id': document['_id']}, document) except Exception as e: self.logger_m.log_exception('DatabaseManager.update_form_clean_data', repr(e)) raise e - def update_old_to_done(self, list_of_docs: List[dict]) -> int: + def update_old_doc_to_done(self, doc_id: str) -> None: """ - Updates then correctorStatus to "done" for the given list of documents. Also updates the correctorTime. - :param list_of_docs: The input list of documents to be updated. - :return: Number of documents updated. + Updates correctorStatus to "done" for the given document. Also updates the correctorTime. + :param doc_id: Document "_id" to be updated. + :return: None. """ - number_of_updated_docs = 0 try: db = self.get_query_db() clean_data = db[CLEAN_DATA_COLLECTION] - for doc in list_of_docs: - clean_data.update({'_id': doc['_id']}, - {'$set': {'correctorStatus': 'done', 'correctorTime': get_timestamp()}}) - number_of_updated_docs += 1 - + clean_data.update_one( + {'_id': doc_id}, + {'$set': {'correctorStatus': 'done', 'correctorTime': get_timestamp()}}) except Exception as e: self.logger_m.log_exception('DatabaseManager.update_old_to_done', repr(e)) raise e - return number_of_updated_docs - def check_clean_document_exists(self, x_request_id: str, document: dict) -> bool: """ Checks if given document exists in clean_data or not @@ -282,7 +283,7 @@ def remove_duplicate_from_raw(self, message_id: str) -> None: try: db = self.get_query_db() raw_messages = db[RAW_DATA_COLLECTION] - raw_messages.remove({'_id': message_id}) + raw_messages.delete_one({'_id': message_id}) except Exception as e: self.logger_m.log_exception('DatabaseManager.remove_duplicate_from_raw', repr(e)) raise e diff --git a/corrector_module/opmon_corrector/document_manager.py b/corrector_module/opmon_corrector/document_manager.py index 08165a88..0e61ed2c 100644 --- a/corrector_module/opmon_corrector/document_manager.py +++ b/corrector_module/opmon_corrector/document_manager.py @@ -23,8 +23,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -import bleach - from opmon_corrector import (SECURITY_SERVER_TYPE_CLIENT, SECURITY_SERVER_TYPE_PRODUCER, __version__) from opmon_corrector.logger_manager import LoggerManager @@ -309,17 +307,26 @@ def create_json(client_document, producer_document, x_request_id): } @staticmethod - def sanitise_document(document: dict) -> dict: + def escape_html(value: str) -> str: + """ + Escape html to avoid potential XSS attacks during log processing. + :param value: The string to be escaped. + :return: Returns escaped string. + """ + return value.translate(str.maketrans({'<': '<', '>': '>', '&': '&'})) + + @staticmethod + def sanitize_document(document: dict) -> dict: """ - Sanitizes the document by cleaning string values using bleach if they are present. - :param document: The document to be sanitised. - :return: Returns the sanitised document. + Sanitizes the document by HTML escaping string values if they are present. + :param document: The document to be sanitized. + :return: Returns the sanitized document. """ - sanitised_document = { - key: bleach.clean(value) if isinstance(value, str) else value + sanitized_document = { + key: DocumentManager.escape_html(value) if isinstance(value, str) else value for key, value in document.items() } - return sanitised_document + return sanitized_document def correct_structure(self, doc): """ diff --git a/corrector_module/opmon_corrector/logger_manager.py b/corrector_module/opmon_corrector/logger_manager.py index ed78e652..cf74c27c 100644 --- a/corrector_module/opmon_corrector/logger_manager.py +++ b/corrector_module/opmon_corrector/logger_manager.py @@ -58,7 +58,7 @@ def _create_file_handler(self): def _handler_is_set(self, handlers): for handler in handlers: - if handler is WatchedFileHandler and os.path.abspath(self.log_path) == handler.baseFilename: + if isinstance(handler, WatchedFileHandler) and os.path.abspath(self.log_path) == handler.baseFilename: return True return False diff --git a/corrector_module/opmon_corrector/tests/test_corrector_batch.py b/corrector_module/opmon_corrector/tests/test_corrector_batch.py index 1366ed5e..4a4e036b 100644 --- a/corrector_module/opmon_corrector/tests/test_corrector_batch.py +++ b/corrector_module/opmon_corrector/tests/test_corrector_batch.py @@ -19,9 +19,9 @@ class SingleProcessedCorrectorBatch(CorrectorBatch): - def _process_workers(self, list_to_process, duplicates): + def _process_workers(self, list_to_process, duplicates, job_type='consume'): worker = CorrectorWorker(self.settings, 'worker 1') - worker.run(list_to_process, duplicates) + worker.run(list_to_process, duplicates, job_type) def read_data_from_json(path): diff --git a/corrector_module/opmon_corrector/tests/test_document_manager.py b/corrector_module/opmon_corrector/tests/test_document_manager.py index 51024e05..fc62f376 100644 --- a/corrector_module/opmon_corrector/tests/test_document_manager.py +++ b/corrector_module/opmon_corrector/tests/test_document_manager.py @@ -530,9 +530,9 @@ def test_correct_structure(mock_logger_manager, basic_settings): assert all([v is None for v in doc.values()]) -def test_sanitise_document(mock_logger_manager, basic_settings): +def test_sanitize_document(mock_logger_manager, basic_settings): dm = DocumentManager(basic_settings) - sanitised_doc = dm.sanitise_document({ + sanitized_doc = dm.sanitize_document({ 'field1': '', 'field2': 't>', 'field3': 100, @@ -540,7 +540,7 @@ def test_sanitise_document(mock_logger_manager, basic_settings): 'field5': None, 'field6': {'sub': 'test'} }) - assert sanitised_doc == { + assert sanitized_doc == { 'field1': '<img src/onerror=prompt(8)>', 'field2': '</scrip</script>t><img src =q onerror=prompt(8)>', 'field3': 100, diff --git a/corrector_module/setup.py b/corrector_module/setup.py index d21f667a..74a08f11 100644 --- a/corrector_module/setup.py +++ b/corrector_module/setup.py @@ -26,9 +26,8 @@ requirements = [ 'setuptools==67.4.0', - 'pymongo==3.10.1', - 'pyyaml==5.4.1', - 'bleach==6.0.0' + 'pymongo==4.6.3', + 'pyyaml==6.0.1', ] classifiers = [ diff --git a/corrector_module/test_requirements.txt b/corrector_module/test_requirements.txt index 7cb9f852..7602d65a 100644 --- a/corrector_module/test_requirements.txt +++ b/corrector_module/test_requirements.txt @@ -2,5 +2,6 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html mongomock -freezegun==1.0.0 +freezegun==1.5.1 diff --git a/corrector_module/tox.ini b/corrector_module/tox.ini index 781bc1b0..aa4c29b4 100644 --- a/corrector_module/tox.ini +++ b/corrector_module/tox.ini @@ -5,7 +5,7 @@ envlist = py38 deps = -rtest_requirements.txt install_command=pip install {opts} {packages} commands = - - coverage run --source opmon_corrector/ -m pytest opmon_corrector/ + coverage run --source opmon_corrector/ -m pytest opmon_corrector/ coverage report --include=opmon_corrector/* coverage html -d ../htmlcov/corrector_module --include=opmon_corrector/* diff --git a/docs/anonymizer_module.md b/docs/anonymizer_module.md index 3ff907e9..3bb5ae9e 100644 --- a/docs/anonymizer_module.md +++ b/docs/anonymizer_module.md @@ -24,7 +24,7 @@ which include following modules: The **Anonymizer module** is responsible of preparing the operational monitoring data for publication through the [Opendata module](opendata_module.md). Anonymizer configuration allows X-Road Metrics extension administrator to set -fine-grained rules for excluding whole operatinal monitoring data records or to modify selected data fields before the data is published. +fine-grained rules for excluding whole operational monitoring data records or to modify selected data fields before the data is published. The anonymizer module uses the operational monitoring data that [Corrector module](corrector_module.md) has prepared and stored to MongoDb as input. The anonymizer processes the data using the configured ruleset and stores the output to the @@ -40,7 +40,7 @@ through [Opendata module](opendata_module.md) is diagram below: MongoDb is used to store "non-anonymized" operational monitoring data that should be accessible only by the X-Road Metrics administrators. Anonymized operational monitoring data that can be published for wider audience is stored in the PostgreSQL. The Opendata UI needs -access only to the PostgreSQL. To follow the "principal of least priviledge" it is recommended to +access only to the PostgreSQL. To follow the "principal of least privilege" it is recommended to install Opendata UI on a dedicated host that has no access at all to MongoDb. However, the Anonymizer module needs access also to the "not-public" data, so it should run on a host that has access to both MongoDb and PostgreSQL. @@ -56,7 +56,7 @@ See [Opendata database](opendata_module.md) For a connection to be known SSL-secured, SSL usage must be configured on both the client and the server before the connection is made. If it is only configured on the server, the client may end up sending sensitive information before it knows that the server requires high security. -To ensure secure connections `ssl-mode` and `ssl-root-cert` parameterers has to be provided in settings file. +To ensure secure connections `ssl-mode` and `ssl-root-cert` parameters has to be provided in settings file. Possible values for `ssl-mode`: `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full` For detailed information see https://www.postgresql.org/docs/current/libpq-ssl.html @@ -142,7 +142,7 @@ Settings that the user must fill in: * name of PostgreSQL database where to store the anonymized data * list of PostgreSQL users that should have read-only access to the anonymized data -The read-only PostgrSQL users should be the users that Opendata-UI and Networking modules use to read data from the +The read-only PostgreSQL users should be the users that Opendata-UI and Networking modules use to read data from the PostgreSQL. @@ -183,7 +183,7 @@ records that fulfill a set of conditions. These _substitution rules_ are defined A substitution rule has two parts. First *conditions* has a set of rules that defines the set of records where the substitution applies. These conditions have same format as the _hiding rules_ above. -Second, there is the *subtitutions* part that consists of feature-value pairs, where feature is the name of the field +Second, there is the *substitutions* part that consists of feature-value pairs, where feature is the name of the field to be substituted and value contains the substitute string. The below example defines two substitution rules. @@ -229,7 +229,7 @@ flag when running xroad-metrics-anonymizer. For example to run anonymizer manual xroad-metrics-anonymizer --profile TEST ``` -`xroad-metrics-anonymizer` command searches the settings file first in current working direcrtory, then in +`xroad-metrics-anonymizer` command searches the settings file first in current working directory, then in _/etc/xroad-metrics/anonymizer/_ ### Manual usage @@ -242,7 +242,7 @@ sudo su xroad-metrics Currently following command line arguments are supported: ```bash -xroad-metrics-anonymizer --help # Show description of the command line argumemts +xroad-metrics-anonymizer --help # Show description of the command line arguments xroad-metrics-anonymizer --limit # Optional flag to limit the number of records to process. xroad-metrics-anonymizer --profile # Run with a non-default settings profile ``` @@ -285,7 +285,7 @@ To anonymize opendata add crontab entry to _/etc/cron.d/xroad-metrics-anonymizer ### Database indexes -Anonymizer module would benefit in `insertTime` index while perfoming opendata anonymization. +Anonymizer module would benefit in `insertTime` index while performing opendata anonymization. Refer to [Indexes](database_module.md#indexes) ## Monitoring and Status @@ -355,7 +355,7 @@ logger: ``` -The heartbeat file is written to `heartbeat-path` and hearbeat file name contains the X-Road instance name. +The heartbeat file is written to `heartbeat-path` and heartbeat file name contains the X-Road instance name. The above example configuration would write logs to `/var/log/xroad-metrics/anonymizer/heartbeat/heartbeat_anonymizer_EXAMPLE.json`. @@ -365,8 +365,8 @@ The heartbeat file consists last message of log file and status ## Metrics statistics -Metrics statistics is executable script to calculate usefull statistical data on Metrics. -Gethered data is stored in database. +Metrics statistics is executable script to calculate useful statistical data on Metrics. +Gathered data is stored in database. Opendata module has API endpoint to view this data by accessing `api/statistics` ### Database Configuration @@ -376,7 +376,7 @@ and created the database credentials. See [Database_Module](database_module.md#s ### Cron Settings -Add cronjob entry to calculate metrics statistics regulary: +Add cronjob entry to calculate metrics statistics regularly: ``` * * * * * xroad-metrics-statistics --profile TEST diff --git a/docs/collector_module.md b/docs/collector_module.md index bfe68042..eb8bc069 100644 --- a/docs/collector_module.md +++ b/docs/collector_module.md @@ -1,6 +1,6 @@ -| [![X-ROAD](img/xroad-metrics-100.png)](https://x-road.global/) | ![European Union / European Regional Development Fund / Investing in your future](img/eu_rdf_100_en.png "Documents that are tagged with EU/SF logos must keep the logos until 1.11.2022. If it has not stated otherwise in the documentation. If new documentation is created using EU/SF resources the logos must be tagged appropriately so that the deadline for logos could be found.") | -| :-------------------------------------------------- | -------------------------: | +| [![X-ROAD](img/xroad-metrics-100.png)](https://x-road.global/) | ![European Union / European Regional Development Fund / Investing in your future](img/eu_rdf_100_en.png "Documents that are tagged with EU/SF logos must keep the logos until 1.11.2022. If it has not stated otherwise in the documentation. If new documentation is created using EU/SF resources the logos must be tagged appropriately so that the deadline for logos could be found.") | +|:---------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| # X-Road Metrics - Collector Module @@ -68,19 +68,20 @@ sudo apt-get install xroad-metrics-collector ``` The installation package automatically installs following items: - * xroad-metrics-collector command to run the collector manually + * `xroad-metrics-collector` command to run the collector manually * Linux user named _xroad-metrics_ and group _xroad-metrics_ * settings file _/etc/xroad-metrics/collector/settings.yaml_ * cronjob in _/etc/cron.d/xroad-metrics-collector-cron_ to run collector automatically every three hours * log folders to _/var/log/xroad-metrics/collector/_ -Only _xroad-metrics_ user can access the settings files and run xroad-metrics-collector command. +Only _xroad-metrics_ user can access the settings files and run `xroad-metrics-collector` command. To use collector you need to fill in your X-Road and MongoDB configuration into the settings file. Refer to section [Collector Configuration](#collector-configuration) ## Usage + ### Collector Configuration Before using the Collector module, make sure you have installed and configured the [Database_Module](database_module.md) @@ -92,23 +93,29 @@ To use collector you need to fill in your X-Road and MongoDB configuration into ```bash sudo vi /etc/xroad-metrics/collector/settings.yaml ``` +> [!TIP] +> For a complete list of available settings, please refer to this [settings.yaml](../collector_module/etc/settings.yaml) template file. Settings that the user must fill in: * X-Road instance name -* Central- and Security Server hosts +* Central and Security Server hosts * X-Road client used to collect the monitoring data * username and password for the collector module MongoDB user -To run collector for multiple X-Road instances, a settings profile for each instance can be created. For example to have profiles DEV, TEST and PROD create three copies of `setting.yaml` -file named `settings_DEV.yaml`, `settings_TEST.yaml` and `settings_PROD.yaml`. -Then fill the profile specific settings to each file and use the --profile -flag when running xroad-metrics-collector. For example to run using the TEST profile: -``` -xroad-metrics-collector --profile TEST collect -``` - -`xroad-metrics-collector` command searches the settings file first in current working direcrtory, then in -_/etc/xroad-metrics/collector/_ +### Settings Profiles + +To run collector for multiple X-Road instances, a settings profile for each instance can be created. +1. To have profiles `DEV`, `TEST`, and `PROD`, create three copies of `setting.yaml` +file named `settings_DEV.yaml`, `settings_TEST.yaml` and `settings_PROD.yaml` respectively. +2. Fill the profile specific settings to each file. +3. Use the `--profile` flag when running `xroad-metrics-collector`. + For example, to run using the `TEST` profile: + ```shell + xroad-metrics-collector --profile TEST collect + ``` +> [!IMPORTANT] +> `xroad-metrics-collector` command searches the settings file first in current working directory, then in +`/etc/xroad-metrics/collector/` ### Using client certificate (mTLS) to connect to security server @@ -128,10 +135,11 @@ security-server: tls-client-key: /path/to/client.key # path to client's private key tls-server-certificate: /path/to/server.crt # path to server's certificate ``` -Notes: - Client's certificate has to be sent to security server administrator. - Server certificate has to be sent by server's administrator and save in client's location. - `tls-server-certificate` can be set to `False` to disable server certificate verification. + +> [!Note] +> - Client's certificate has to be sent to security server administrator. +> - Server certificate has to be sent by server's administrator and save in client's location. +> - `tls-server-certificate` can be set to `False` to disable server certificate verification. ### Manual usage @@ -151,6 +159,7 @@ xroad-metrics-collector settings get mongodb.host # Read a value from settings Above examples use the default settings file. To use another settings profile, you can use --profile flag: ```bash +xroad-metrics-collector --profile TEST list xroad-metrics-collector --profile TEST update xroad-metrics-collector --profile TEST collect ``` @@ -159,10 +168,10 @@ xroad-metrics-collector --profile TEST collect Default installation includes a cronjob in _/etc/cron.d/xroad-metrics-collector-cron_ that runs collector every three hours. This job runs collector using default settings profile (_/etc/xroad-metrics/collector/settings.yaml_) If you want to change the collector cronjob scheduling or settings profiles, edit the file e.g. with vi -``` +```bash vi /etc/cron.d/xroad-metrics-collector-cron ``` -and make your changes. For example to run collector every six hours using settings profiles PROD and TEST: +and make your changes. For example to run collector every six hours using settings profiles `PROD` and `TEST`: ```bash SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin @@ -218,7 +227,7 @@ Every log line includes: - **"local_timestamp"**: timestamp in local format '%Y-%m-%d %H:%M:%S %z' - **"module"**: "collector" - **"version"**: in form of "v${MINOR}.${MAJOR}" -- **"activity"**: possible valuse "collector_start", "collector_worker", "collector_end" +- **"activity"**: possible values "collector_start", "collector_worker", "collector_end" - **level**: possible values "INFO", "WARNING", "ERROR" - **msg**: message @@ -230,7 +239,7 @@ In case of "activity": "collector_end", the "msg" includes values separated by c The **collector module** log handler is compatible with the logrotate utility. To configure log rotation for the example setup above, create the file: -``` +```bash sudo vi /etc/logrotate.d/xroad-metrics-collector ``` @@ -244,7 +253,7 @@ and add the following content : For further log rotation options, please refer to logrotate manual: -``` +```bash man logrotate ``` @@ -264,7 +273,7 @@ logger: ``` -The heartbeat file is written to `heartbeat-path` and hearbeat file name contains the X-Road instance name. +The heartbeat file is written to `heartbeat-path` and heartbeat file name contains the X-Road instance name. The above example configuration would write logs to `/var/log/xroad-metrics/collector/heartbeat/heartbeat_collector_EXAMPLE.json`. The heartbeat file consists last message of log file and status diff --git a/docs/corrector_module.md b/docs/corrector_module.md index 392b3a63..279265fb 100644 --- a/docs/corrector_module.md +++ b/docs/corrector_module.md @@ -40,77 +40,194 @@ The module source code can be found at: ## Pair matching logic The first step is to add the missing fields into the document (in case it is missing some). -The value will be "None" for the missing fields. +The value will be `None` for the missing fields. The fields that MUST be there for each document are the following: -``` -'monitoringDataTs', 'securityServerInternalIp', 'securityServerType', 'requestInTs', 'requestOutTs', -'responseInTs', 'responseOutTs', 'clientXRoadInstance', 'clientMemberClass', 'clientMemberCode', -'clientSubsystemCode', 'serviceXRoadInstance', 'serviceMemberClass', 'serviceMemberCode', -'serviceSubsystemCode', 'serviceCode', 'serviceVersion', 'representedPartyClass', 'representedPartyCode', -'messageId', 'messageUserId', 'messageIssue', 'messageProtocolVersion', 'clientSecurityServerAddress', -'serviceSecurityServerAddress', 'requestSoapSize', 'requestMimeSize', 'requestAttachmentCount', -'responseSoapSize', 'responseMimeSize', 'responseAttachmentCount', 'succeeded', 'soapFaultCode', -'soapFaultString' +```yaml +# sorted alphabetically +- clientMemberClass +- clientMemberCode +- clientSecurityServerAddress +- clientSubsystemCode +- clientXRoadInstance + +- messageId +- messageIssue +- messageProtocolVersion +- messageUserId +- monitoringDataTs +- representedPartyClass +- representedPartyCode + +- requestAttachmentCount +- requestInTs +- requestMimeSize +- requestOutTs +- requestSoapSize + +- responseAttachmentCount +- responseInTs +- responseMimeSize +- responseOutTs +- responseSoapSize + +- securityServerInternalIp +- securityServerType + +- serviceCode +- serviceMemberClass +- serviceMemberCode +- serviceSecurityServerAddress +- serviceSubsystemCode +- serviceVersion +- serviceXRoadInstance + +- soapFaultCode +- soapFaultString +- succeeded ``` Before finding a match, a hash is calculated for the current document. The following fields are included: -``` -'monitoringDataTs', 'securityServerInternalIp', 'securityServerType', 'requestInTs', -‘requestOutTs', 'responseInTs', 'responseOutTs', 'clientXRoadInstance', 'clientMemberClass', -'clientMemberCode', 'clientSubsystemCode', 'serviceXRoadInstance', 'serviceMemberClass', -'serviceMemberCode', 'serviceSubsystemCode', 'serviceCode', 'serviceVersion', -'representedPartyClass', 'representedPartyCode', 'messageId', 'messageUserId', -'messageIssue', 'messageProtocolVersion', 'clientSecurityServerAddress', -'serviceSecurityServerAddress', 'requestSoapSize', 'requestMimeSize', -‘requestAttachmentCount', 'responseSoapSize', 'responseMimeSize', ‘responseAttachmentCount', -'succeeded', 'soapFaultCode', 'soapFaultString' +```yaml +# sorted alphabetically +- clientMemberClass +- clientMemberCode +- clientSecurityServerAddress +- clientSubsystemCode +- clientXRoadInstance + +- messageId +- messageIssue +- messageProtocolVersion +- messageUserId +- monitoringDataTs +- representedPartyClass +- representedPartyCode + +- requestAttachmentCount +- requestInTs +- requestMimeSize +- requestOutTs +- requestSoapSize + +- responseAttachmentCount +- responseInTs +- responseMimeSize +- responseOutTs +- responseSoapSize + +- securityServerInternalIp +- securityServerType + +- serviceCode +- serviceMemberClass +- serviceMemberCode +- serviceSecurityServerAddress +- serviceSubsystemCode +- serviceVersion +- serviceXRoadInstance + +- soapFaultCode +- soapFaultString +- succeeded ``` The fields excluded from the hash are the following: -``` -'_id', 'insertTime' 'corrected' +```yaml +- _id +- corrected +- insertTime ``` -After calculating the hash it is checked that the hash doesn't already exist in the DB (clean_data). +After calculating the hash it is checked that the hash doesn't already exist in the DB (`clean_data`). If it does exist, the document is skipped. If the hash doesn't exist, then possible matches are queried for the document. The possible matches are queried using the following rules: -* 'messageId' == currentDocument's messageId' -* 'correctorStatus' == 'processing' -* (currentDoc's 'requestInTs' - 60s) <= 'requestInTs' <= (currentDoc's 'requestInTs' + 60s) -* If the current document's 'securityServerType' == 'Client' then we query only the documents that have 'clientHash' == None -* If the current document's 'securityServerType' == 'Producer' then we query only the documents that have 'producerHash' == None +* `messageId` == currentDocument's messageId +* `correctorStatus` == `processing` +* (currentDoc's `requestInTs` - 60s) <= `requestInTs` <= (currentDoc's `requestInTs` + 60s) +* If the current document's `securityServerType` == `Client` then we query only the documents that have `clientHash` == `None` +If the current document's `securityServerType` == `Producer` then we query only the documents that have `producerHash` == `None` Then all the possible candidates will be first matched using regular match to make up the pair. -The 'requestInTs' time difference must be <= 60 seconds for BOTH the regular and orphan match. +The `requestInTs` time difference must be <= 60 seconds for BOTH the regular and orphan match. The fields that must be equal for regular match are the following: -``` -'clientMemberClass', 'requestMimeSize', 'serviceSubsystemCode', 'requestAttachmentCount', -'serviceSecurityServerAddress', 'messageProtocolVersion', 'responseSoapSize', 'succeeded', -'clientSubsystemCode', 'responseAttachmentCount', 'serviceMemberClass', 'messageUserId', -'serviceMemberCode', 'serviceXRoadInstance', 'clientSecurityServerAddress', 'clientMemberCode', -'clientXRoadInstance', 'messageIssue', 'serviceVersion', 'requestSoapSize', 'serviceCode', -'representedPartyClass', 'representedPartyCode', 'soapFaultCode', 'soapFaultString', -'responseMimeSize', 'messageId' +```yaml +# sorted alphabetically +- clientAttachmentCount +- clientMemberClass +- clientMemberCode +- clientSecurityServerAddress +- clientSubsystemCode +- clientXRoadInstance + +- messageId +- messageIssue +- messageProtocolVersion +- messageUserId +- representedPartyClass +- representedPartyCode + +- requestAttachmentCount +- requestMimeSize +- requestSoapSize + +- responseAttachmentCount +- responseMimeSize +- responseSoapSize + +- serviceCode +- serviceMemberClass +- serviceMemberCode +- serviceSecurityServerAddress +- serviceSubsystemCode +- serviceVersion +- serviceXRoadInstance + +- soapFaultCode +- soapFaultString +- succeeded ``` If no match is found, then the orphan match will be used. The fields that must be equal for orphan match are the following: +```yaml +# sorted alphabetically +- clientMemberClass +- clientMemberCode +- clientSecurityServerAddress +- clientSubsystemCode +- clientXRoadInstance + +- messageId +- messageIssue +- messageProtocolVersion +- messageUserId +- representedPartyClass +- representedPartyCode + +- serviceCode +- serviceMemberClass +- serviceMemberCode +- serviceSecurityServerAddress +- serviceSubsystemCode +- serviceVersion +- serviceXRoadInstance + +- soapFaultCode +- soapFaultString +- succeeded ``` -'clientMemberClass', 'serviceSubsystemCode', 'serviceSecurityServerAddress', 'messageProtocolVersion', 'succeeded', -'clientSubsystemCode', 'serviceMemberClass', 'messageUserId', 'serviceMemberCode', 'serviceXRoadInstance', -'clientSecurityServerAddress', 'clientMemberCode', 'clientXRoadInstance', 'messageIssue', 'serviceVersion', -'serviceCode', 'representedPartyClass', 'representedPartyCode', 'soapFaultCode', 'soapFaultString', 'messageId' -``` -If still no match found then the document will be added into the clean_data as "orphan". -If the match was found then the documents will be paired and added into the clean_data as either "regular_pair" or "orphan_pair". +If still no match found then the document will be added into the clean_data as `orphan`. + +If the match was found then the documents will be paired and added into the clean_data as either `regular_pair` or `orphan_pair`. + ## Networking @@ -147,7 +264,7 @@ sudo apt-get install xroad-metrics-corrector ``` The installation package automatically installs following items: - * xroad-metrics-correctord daemon + * `xroad-metrics-correctord` daemon * Linux user named _xroad-metrics_ and group _xroad-metrics_ * settings file _/etc/xroad-metrics/corrector/settings.yaml_ * systemd service unit configuration _/lib/systemd/system/xroad-metrics-corrector.service_ @@ -171,16 +288,31 @@ To use corrector you need to fill in your X-Road and MongoDB configuration into ```bash sudo vi /etc/xroad-metrics/corrector/settings.yaml ``` +> [!TIP] +> For a complete list of available settings, please refer to this [settings.yaml](../corrector_module/etc/settings.yaml) template file. Settings that the user must fill in: * X-Road instance name * mongodb host * username and password for the corrector module MongoDB user +### Settings Profiles +To run corrector for multiple X-Road instances, a settings profile for each instance can be created. +1. To have profiles `DEV`, `TEST`, and `PROD` create three copies of `setting.yaml` +file named `settings_DEV.yaml`, `settings_TEST.yaml`, and `settings_PROD.yaml`. +2. Fill the profile specific settings to each file +3. Use the `--profile` flag when running `xroad-metrics-correctord`. + For example to run corrector manually using the TEST profile: + ```bash + xroad-metrics-correctord --profile TEST + ``` +> [!IMPORTANT] +> `xroad-metrics-corrector` command searches the settings file first in current working directory, then in +`/etc/xroad-metrics/corrector/` ### Manual usage -Corrector operation can be tested by running the corrector daemon manually. For production use it is recommended to set up a systemd service (see next chapter). +Corrector operation can be tested by running the corrector daemon manually. For production use, it is recommended to set up a systemd service (see next chapter). Make sure the corrector is not running as a systemd service with: @@ -195,56 +327,52 @@ To run corrector manually in the foreground as xroad-metrics user, just execute: xroad-metrics-correctord ``` -**Note**: Corrector module has a current limit of documents controlled by **CORRECTOR_DOCUMENTS_LIMIT** (by default set to CORRECTOR_DOCUMENTS_LIMIT = 20000) to ensure RAM and CPU is not overloaded during calculations. The CORRECTOR_DOCUMENTS_LIMIT defines the processing batch size, and is executed continuously until the total of documents left is smaller than **CORRECTOR_DOCUMENTS_MIN** documents (default set to CORRECTOR_DOCUMENTS_MIN = 1). The estimated amount of memory per processing batch is indicated at [System Architecture](system_architecture.md) documentation. +> [!Note] +> - Corrector module has a current limit of documents controlled by `CORRECTOR_DOCUMENTS_LIMIT` (by default set to `CORRECTOR_DOCUMENTS_LIMIT` = `20000`) to ensure RAM and CPU is not overloaded during calculations. +> - The `CORRECTOR_DOCUMENTS_LIMIT` defines the processing batch size, and is executed continuously until the total of documents left is smaller than `CORRECTOR_DOCUMENTS_MIN` documents (default set to `CORRECTOR_DOCUMENTS_MIN` = `1`). +> - The estimated amount of memory per processing batch is indicated at [System Architecture](system_architecture.md) documentation. + +### systemd Service + +#### Default Settings Profile -### sysetmd Service To run the corrector as a continuous background service under systemd execute the following commands: -``` +```bash sudo systemctl enable xroad-metrics-corrector sudo systemctl start xroad-metrics-corrector ``` To check the service status: -``` +```bash systemctl status xroad-metrics-corrector ``` -### Settings Profiles -To run corrector for multiple X-Road instances, a settings profile for each instance can be created. For example to have profiles DEV, TEST and PROD create three copies of `setting.yaml` -file named `settings_DEV.yaml`, `settings_TEST.yaml` and `settings_PROD.yaml`. -Then fill the profile specific settings to each file and use the --profile -flag when running xroad-metrics-correctord. For example to run corrector manually using the TEST profile: -``` -xroad-metrics-correctord --profile TEST -``` - -`xroad-metrics-corrector` command searches the settings file first in current working direcrtory, then in -_/etc/xroad-metrics/corrector/_ +#### Multiples Settings Profiles To run corrector as a systemd service using a specific settings profile you need to create a service configuration. -For example to create a service using "PROD" profile, the default service configuration can be used as a starting point: -``` +For example to create a service using `PROD` profile, the default service configuration can be used as a starting point: +```bash sudo cp /lib/systemd/system/xroad-metrics-corrector.service /lib/systemd/system/xroad-metrics-corrector-PROD.service ``` Then edit the config file e.g. with vi -``` +```bash sudo vi /lib/systemd/system/xroad-metrics-corrector-PROD.service ``` -Modify the ExecStart line in the config file to use the wanted settings profile (PROD in this example): -``` +Modify the `ExecStart` line in the config file to use the wanted settings profile (`PROD` in this example): +```bash ExecStart=/usr/bin/xroad-metrics-correctord --profile PROD ``` Enable and start the new service: -``` +```bash sudo systemctl enable xroad-metrics-corrector-PROD sudo systemctl start xroad-metrics-corrector-PROD ``` To check the service status: -``` +```bash systemctl status xroad-metrics-corrector-PROD ``` @@ -289,7 +417,7 @@ Every log line includes: - **"local_timestamp"**: timestamp in local format '%Y-%m-%d %H:%M:%S %z' - **"module"**: "corrector" - **"version"**: in form of "v${MINOR}.${MAJOR}" -- **"activity"**: possible valuse "corrector_main", "corrector_batch_run", "corrector_batch_start", "corrector_batch_raw", "DatabaseManager.get_raw_documents", "corrector_batch_update_timeout", "corrector_batch_update_old_to_done", "corrector_batch_remove_duplicates_from_raw", "corrector_batch_end" +- **"activity"**: possible values "corrector_main", "corrector_batch_run", "corrector_batch_start", "corrector_batch_raw", "DatabaseManager.get_raw_documents", "corrector_batch_update_timeout", "corrector_batch_update_old_to_done", "corrector_batch_remove_duplicates_from_raw", "corrector_batch_end" - **level**: possible values "INFO", "WARNING", "ERROR" - **msg**: message @@ -301,7 +429,7 @@ In case of "activity": "corrector_batch_end", the "msg" includes values separate The **corrector module** log handler is compatible with the logrotate utility. To configure log rotation for the example setup above, create the file: -``` +```bash sudo vi /etc/logrotate.d/xroad-metrics-corrector ``` @@ -315,7 +443,7 @@ and add the following content : For further log rotation options, please refer to logrotate manual: -``` +```bash man logrotate ``` @@ -335,7 +463,7 @@ logger: ``` -The heartbeat file is written to `heartbeat-path` and hearbeat file name contains the X-Road instance name. +The heartbeat file is written to `heartbeat-path` and heartbeat file name contains the X-Road instance name. The above example configuration would write logs to `/var/log/xroad-metrics/corrector/heartbeat/heartbeat_corrector_EXAMPLE.json`. The heartbeat file consists last message of log file and status diff --git a/docs/database_module.md b/docs/database_module.md index 8b61f0ee..fa18c1ce 100644 --- a/docs/database_module.md +++ b/docs/database_module.md @@ -106,7 +106,7 @@ use admin db.createUser( { user: "root", - pwd: passwordPrompt(), // or cleartext password + pwd: passwordPrompt(), // or clear text password roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } ) @@ -231,7 +231,7 @@ For X-Road instance `EX` auth_db should have following users and access rights: * anonymizer_state_EX: readWrite * **collector_EX**: * query_db_EX: readWrite, - * collcetor_state_EX: readWrite + * collector_state_EX: readWrite * **corrector_EX**: * query_db_EX: readWrite * **reports_EX**: @@ -491,7 +491,7 @@ vm.dirty_ratio = 15 vm.dirty_background_ratio = 5 ``` -### Swapiness +### Swappiness See also https://en.wikipedia.org/wiki/Paging#Swappiness diff --git a/docs/experimental/analysis_module/analyzer_installation.md b/docs/experimental/analysis_module/analyzer_installation.md index 481443a2..600fc196 100644 --- a/docs/experimental/analysis_module/analyzer_installation.md +++ b/docs/experimental/analysis_module/analyzer_installation.md @@ -66,10 +66,10 @@ file named `settings_DEV.yaml`, `settings_TEST.yaml` and `settings_PROD.yaml`. Then fill the profile specific settings to each file and use the --profile flag when running opmon-analyzer. For example to run model update using the TEST profile: ``` -opmon-analyzer --profile TEST upate +opmon-analyzer --profile TEST update ``` -`opmon-analyzer` command searches the settings file first in current working direcrtory, then in +`opmon-analyzer` command searches the settings file first in current working directory, then in _/etc/opmon/analyzer/_ ### Manual usage @@ -192,7 +192,7 @@ time period (e.g. 10 days), after which they are considered "expired" and will n Requests that are part of a "true incident" (an anomaly that was marked as "incident" before the expiration date) are not used to update the model. -This way, the historic averages remain to describe the "normal" behaviour. +This way, the historic averages remain to describe the "normal" behavior. Note that updating the model does not change the anomalies that have already been found (the existing anomalies are not recalculated). @@ -201,7 +201,7 @@ only the data from time intervals that have already completed are used. This is for example, the number of requests within 10 minutes is compared to the (historic) number of requests within 1 hour, as such comparison would almost certainly yield an anomaly. -It is recommended that the model is given some time to learn the behaviour of a particular service call (e.g. 3 months). +It is recommended that the model is given some time to learn the behavior of a particular service call (e.g. 3 months). Therefore, the following approach is implemented for **new** service calls: 1. For the first 3 months since the first request was made by a given service call, no anomalies are reported (this is the training period) diff --git a/docs/experimental/analysis_module/customization.md b/docs/experimental/analysis_module/customization.md index 1e3f09f1..abb441bd 100644 --- a/docs/experimental/analysis_module/customization.md +++ b/docs/experimental/analysis_module/customization.md @@ -23,8 +23,8 @@ The Analyzer back-end can be configured from **analysis_module/analyzer/analyzer | relevant_cols_general | Database fields from the clean_data collection that are relevant for the analyzer and appear at the top level of the request. | relevant_cols_general = ["_id", 'totalDuration', 'producerDurationProducerView', 'requestNwDuration', 'responseNwDuration'] | | relevant_cols_nested | Database fields from the clean_data collection that are relevant for the analyzer and are nested inside 'client' and 'producer'. | relevant_cols_nested = ["succeeded", "messageId", timestamp_field] + service_call_fields | | relevant_cols_general_alternative | Database fields from the clean_data collection that are relevant for the analyzer and appear at the top level of the request, but are analogous for 'client' and 'producer' side.
For the Analyzer, only one field from each pair is necessary. In other words, if the field exists for the client side, then this value is used, otherwise the value from the producer side is used.
In configuration, these fields are presented as triplets, where the first element refers to the general name used in the Analyzer, the second and third value are the alternative fields in the database. | relevant_cols_general_alternative = [('requestSize', 'clientRequestSize', 'producerRequestSize')] | -_aggregation_time_window | Settings for a given aggregation time window. The following attributes should be speficied:
1) 'agg_window_name' - a name (can be chosen arbitrarily) that will be used to refer to the aggregation window,
2) 'agg_minutes' - number of minutes to use for aggregation,
3) 'pd_timeunit' - used in the pandas.to_timedelta method to refer to the same time period, should be one of (D,h,m,s,ms,us,ns). (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_timedelta.html). | hour_aggregation_time_window = \{'agg_window_name': 'hour', 'agg_minutes': 60, 'pd_timeunit': 'h'}| -| _similarity_time_window | Settings for a given similarity time window. For example, if the aggregation time window is hour, the similarity time window can be hour+weekday, meaning that the aggregated values from a given hour are compared to historic values collected from the same hour on the same weekday. The following attributes should be speficied:
1) 'timeunit_name' - a name (can be chosen arbitrarily) that will be used to refer to the similarity window,
2) 'agg_window' - one of _aggregation_time_window,
3) 'similar_periods' - a list of time periods. A given set of aggregated requests will be compared to the combination of these periods. Each value in the list is used to extract the necessary time component from a pandas.DatetimeIndex object, so each value should be one of (year, month, day, hour, minute, second, microsecond, nanosecond, dayofyear, weekofyear, week, dayofweek, weekday, quarter). (http://pandas.pydata.org/pandas-docs/version/0.17.0/api.html#time-date-components) | hour_weekday_similarity_time_window = {'timeunit_name': 'hour_weekday', 'agg_window': hour_aggregation_time_window, 'similar_periods': ['hour', 'weekday']\} | +_aggregation_time_window | Settings for a given aggregation time window. The following attributes should be specified:
1) 'agg_window_name' - a name (can be chosen arbitrarily) that will be used to refer to the aggregation window,
2) 'agg_minutes' - number of minutes to use for aggregation,
3) 'pd_timeunit' - used in the pandas.to_timedelta method to refer to the same time period, should be one of (D,h,m,s,ms,us,ns). (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_timedelta.html). | hour_aggregation_time_window = \{'agg_window_name': 'hour', 'agg_minutes': 60, 'pd_timeunit': 'h'}| +| _similarity_time_window | Settings for a given similarity time window. For example, if the aggregation time window is hour, the similarity time window can be hour+weekday, meaning that the aggregated values from a given hour are compared to historic values collected from the same hour on the same weekday. The following attributes should be specified:
1) 'timeunit_name' - a name (can be chosen arbitrarily) that will be used to refer to the similarity window,
2) 'agg_window' - one of _aggregation_time_window,
3) 'similar_periods' - a list of time periods. A given set of aggregated requests will be compared to the combination of these periods. Each value in the list is used to extract the necessary time component from a pandas.DatetimeIndex object, so each value should be one of (year, month, day, hour, minute, second, microsecond, nanosecond, dayofyear, weekofyear, week, dayofweek, weekday, quarter). (http://pandas.pydata.org/pandas-docs/version/0.17.0/api.html#time-date-components) | hour_weekday_similarity_time_window = {'timeunit_name': 'hour_weekday', 'agg_window': hour_aggregation_time_window, 'similar_periods': ['hour', 'weekday']\} | | time_windows | A dictionary of pairs (anomaly_type, previously defined _aggregation_time_window) for anomaly types that do not require comparison with historic values. The specified time window will be used to aggregate requests for the given anomaly type. | time_windows = \{
"failed_request_ratio": hour_aggregation_time_window,
"duplicate_message_ids": day_aggregation_time_window,
"time_sync_errors": hour_aggregation_time_window} | | historic_averages_time_windows | A list of previously defined _similarity_time_windows for anomaly types that require comparison with historic averages. A separate AveragesByTimeperiodModel is constructed for each such similarity time window. | historic_averages_time_windows = [hour_weekday_similarity_time_window, weekday_similarity_time_window] | | historic_averages_thresholds | A dictionary of confidence thresholds used in the AveragesByTimeperiodModel(s). An observation (an aggregation of requests within a given time window) is considered an anomaly if the confidence (estimated by the model) of being an anomaly is larger than this threshold. | historic_averages_thresholds = \{
'request_count': 0.95,
'mean_request_size': 0.95,
'mean_response_size': 0.95,
'mean_client_duration': 0.95,
'mean_producer_duration': 0.95} ] | diff --git a/docs/networking_module.md b/docs/networking_module.md index 7f6e0d0e..6fdd3620 100644 --- a/docs/networking_module.md +++ b/docs/networking_module.md @@ -126,7 +126,7 @@ the command should be represented in the following way: ``` Now the xroad-metrics-networking data preparation program will get configuration settings from a settings file named -settings_TEST.yaml. The command searches the settings file first in current working direcrtory, +settings_TEST.yaml. The command searches the settings file first in current working directory, then in _/etc/xroad-metrics/networking/_. xroad-metrics-networking command will then tag the generated output files with the profile name (TEST in this case). @@ -143,7 +143,7 @@ See [Opendata database](opendata_module.md) For a connection to be known SSL-secured, SSL usage must be configured on both the client and the server before the connection is made. If it is only configured on the server, the client may end up sending sensitive information before it knows that the server requires high security. -To ensure secure connections `ssl_mode` and `ssl_root_cert` parameterers has to be provided in settings file. +To ensure secure connections `ssl_mode` and `ssl_root_cert` parameters has to be provided in settings file. Possible values for `ssl_mode`: `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full` For detailed information see https://www.postgresql.org/docs/current/libpq-ssl.html @@ -216,16 +216,28 @@ The data preparation step can be started by the command `xroad-metrics-networkin ('interval' in settings file, default 30 days) from the most recent `requestindate`. The script retrieves only `succeeded=True` logs. The script retrieves the following fields: - ``` - requestindate, clientmembercode, clientsubsystemcode, - servicemembercode, servicesubsystemcode, servicecode + ```yaml + # sorted alphabetically + - clientmembercode + - clientsubsystemcode + + - requestindate + + - servicecode + - servicemembercode + - servicesubsystemcode ``` 5. Calculates the count of service calls between each unique combination of the fields: - ``` - clientmembercode, clientsubsystemcode, servicemembercode, - servicesubsystemcode, servicecode + ```yaml + # sorted alphabetically + - clientmembercode + - clientsubsystemcode + + - servicecode + - servicemembercode + - servicesubsystemcode ``` 6. Adds the following concatenate fields `client`, `producer`, `producer.service` @@ -275,7 +287,7 @@ The visualization output includes two different graphs: The numbers of queries between the members are logarithmed (log10) in both graphs in order to enable color and line thickness graduations. -The back-end of the web application a Shiny-framework web-app installed into `/usrr/share/xroad-metrics/networking/shiny/app.R`. +The back-end of the web application a Shiny-framework web-app installed into `/usr/share/xroad-metrics/networking/shiny/app.R`. In addition to setting up the user interface, the script also does service call counting and logarithming. The data file prepared by `prepare_data.R` includes counts of service calls on the service level. For displaying X-Road member networking on the higher levels (member, subsystem), the `app.R` script reactively @@ -315,13 +327,13 @@ Heartbeat has two statuses: SUCCEEDED and FAILED ### Shiny Server -Rstudio Shiny Server Open Source has its own built-in logging. +RStudio Shiny Server Open Source has its own built-in logging. All information related to Shiny Server itself, rather than a particular Shiny application, is logged in the global system log stored in `/var/log/shiny-server.log`. Any errors and warnings that Shiny Server needs to communicate will be written here. The application-specific logs, in this case the applications residing in `/usr/share/xroad-metrics/networking/shiny` subfolders, are logged separately and stored in `/var/log/shiny-server`. The log files are created in the following format: -`-YYYMMDD-HHmmss-.log`, e.g. `sample-shiny-20171021-232458-41093.log`. +`-YYYYMMDD-HHmmss-.log`, e.g. `sample-shiny-20171021-232458-41093.log`. A log file will be created for each R process when it is started. However, if a process closes successfully, the error log associated with that process will be automatically deleted. diff --git a/docs/opendata/anonymizer.md b/docs/opendata/anonymizer.md index 55c60889..7552b328 100644 --- a/docs/opendata/anonymizer.md +++ b/docs/opendata/anonymizer.md @@ -23,7 +23,7 @@ Anonymizer module is part of [X-Road Metrics](../../README.md), which includes t **Anonymizer** is a pipeline for making X-Road logs suitable for public use. It is achieved by fetching still unprocessed - but corrected data - from the [Corrector Module's](../corrector_module.md) output, applying the defined anonymization procedures, -and outputting the already anonymized data available through [Opendata module interfaces](interface_postgresql.md). +and outputting the already anonymized data available through [Opendata module](../opendata_module.md). ### Anonymization process @@ -78,7 +78,7 @@ No **incoming** connection is needed in the anonymizer module. ## Installation -TODO: Update installattion instructions to use deb packages +TODO: Update installation instructions to use deb packages This sections describes the necessary steps to install the **anonymizer module** in a Linux Ubuntu 16.04. To a complete overview of different modules and machines, please refer to the [System Architecture](../system_architecture.md) and [Opendata module](../opendata_module.md) documentation. @@ -229,7 +229,7 @@ or as an alternative, all stuff within one bash script (please edit variable INS Main attribute: CPUs (can anonymize in parallel, number of threads must be defined in the settings). Upscaling (more X-Road instances): additional CPUs and RAM to run Anonymizers in parallel. -Upscaling (more services): additional CPUs and RAM to process logs faster, as evey thread gets a batch of logs +Upscaling (more services): additional CPUs and RAM to process logs faster, as every thread gets a batch of logs to process. Benefits from: fast connection to MongoDB and/or PostgreSQL. diff --git a/docs/opendata/configuration_parameters.md b/docs/opendata/configuration_parameters.md index 489887bb..3eed5bf9 100644 --- a/docs/opendata/configuration_parameters.md +++ b/docs/opendata/configuration_parameters.md @@ -50,7 +50,7 @@ producerDurationProducerView -> producerDurationProducerView ### Transformers -Transformers are custom Python functions which take in a singular record with the final Opendata database schema (no "client." or "producer." prefices, postgresql_column_name keys) in the form of Python dictionary and can change one or many values. By default, only a transformer for reducing *requestInTs* accuracy is implemented and installed. +Transformers are custom Python functions which take in a singular record with the final Opendata database schema (no "client." or "producer." prefixes, postgresql_column_name keys) in the form of Python dictionary and can change one or many values. By default, only a transformer for reducing *requestInTs* accuracy is implemented and installed. The following statement says that only `opendata_module/anonymizer/transformers/default:reduce_request_in_ts_precision` is applied in the anonymization process. All other custom transformers must be located within the directory `transformers`. @@ -72,7 +72,7 @@ def reduce_request_in_ts_precision(record): ### Processing threads Reading from MongoDB is done in the master thread. All the processing and writing is done in parallel among the defined number of threads (subprocesses due to [GIL](https://wiki.python.org/moin/GlobalInterpreterLock "Global Interpreter Lock")). -It is suggested to set number of threads match with nomber of server processor cores available. +It is suggested to set number of threads match with number of server processor cores available. ```python anonymizer['threads'] = 2 diff --git a/docs/opendata/user_guide/ug_opendata_api.md b/docs/opendata/user_guide/ug_opendata_api.md index cc12e667..ac5fca01 100644 --- a/docs/opendata/user_guide/ug_opendata_api.md +++ b/docs/opendata/user_guide/ug_opendata_api.md @@ -16,7 +16,7 @@ Open Data API allows to query daily logs or log samples programmatically without In order to achieve that, handlers allow to query the following data: * Minimum and maximum date of the available logs; -* Column names, types, descriptions and available oeprators; +* Column names, types, descriptions and available operators; * All daily logs in **ndjson.gz** format; * Meta (description) file for daily logs; * Sample logs for a day in **JSON** format. @@ -50,7 +50,7 @@ All API error messages are in JSON format and look similar to API supports all the HTTP/HTTPS request methods: * GET -* POST (and its derivates) +* POST (and its derivatives) **Note:** all resources (handlers) are available for both GET and POST type of requests. @@ -282,7 +282,7 @@ curl --request --url "${URL}/api/daily_logs" \ ### Daily logs meta -Retrieve meta (description) file for daily logs in **JSON** fromat. +Retrieve meta (description) file for daily logs in **JSON** format. #### Parameters diff --git a/docs/opendata/user_guide/ug_opendata_interface.md b/docs/opendata/user_guide/ug_opendata_interface.md index 0d2f53d5..362cfb19 100644 --- a/docs/opendata/user_guide/ug_opendata_interface.md +++ b/docs/opendata/user_guide/ug_opendata_interface.md @@ -28,13 +28,13 @@ Logs are anonymized, ie sensitive fields are removed, incl: - clientSecurityServerAddress: External address of client's Security Server (IP or name) - serviceSecurityServerAddress: External address of service provider's Security Server (IP or name) -Timestamps (specifically *requestInTs*) are rounded to hour precision and presented in form of Unix timstamp (epoch time). +Timestamps (specifically *requestInTs*) are rounded to hour precision and presented in form of Unix timestamp (epoch time). Additional calculations from timestamps available are made: - requestInDate - human-readable date presentation of timestamp requestInTs -- producerDurationProducerView - when available, then calculated as substraction 'Producer responseOutTs (6)' - 'Producer requestInTs (3)' -- totalDuration - when available, then calculated as substraction 'Client responseOutTs (8)' - 'Client requestInTs (1)' +- producerDurationProducerView - when available, then calculated as subtraction 'Producer responseOutTs (6)' - 'Producer requestInTs (3)' +- totalDuration - when available, then calculated as subtraction 'Client responseOutTs (8)' - 'Client requestInTs (1)' Explanation of timestamps (1) - (8): ![Timestamps](../../img/opendata/0_timestamps.png "Timestamps") diff --git a/docs/opendata_module.md b/docs/opendata_module.md index a6e0c91b..413dc8df 100644 --- a/docs/opendata_module.md +++ b/docs/opendata_module.md @@ -34,7 +34,7 @@ through is in the diagram below: MongoDb is used to store "non-anonymized" operational monitoring data that should be accessible only by the X-Road administrators. Anonymized operational monitoring data that can be published for wider audience is stored in the PostgreSQL. The opendata UI needs -access only to the PostgreSQL. To follow the "principal of least priviledge" it is recommended to +access only to the PostgreSQL. To follow the "principal of least privilege" it is recommended to install Opendata UI on a dedicated host that has no access at all to MongoDb. The Opendata UI is served by Apache web server using HTTPS protocol (default port 443). @@ -45,7 +45,7 @@ The Opendata node needs no **outgoing** connections. ### Incoming -- The Opendata node accepts incoming connections from [Anonymizer module](anonymizer.md) (see also [Opendata module](../opendata_module.md)). +- The Opendata node accepts incoming connections from [Anonymizer module](anonymizer_module.md) (see also [Opendata module](opendata_module.md)). - The Opendata node accepts incoming access from the public (preferably HTTPS / port 443, but also redirecting HTTP / port 80). ## Installation @@ -97,7 +97,7 @@ You have to fill in some environment specific settings to the settings file to m Refer to section [Opendata Module Configuration](#opendata-module-configuration) ## Database Setup -Before installing the database, please install the X-Road Metrics as descibed above. +Before installing the database, please install the X-Road Metrics as described above. After the PostgreSQL database is installed and configured you can proceed to finish configuration of the Opendata module. @@ -129,7 +129,7 @@ sudo apt install postgresql ### Automatic PostgreSQL User Creation The X-Road Metrics Opendata package includes a command that creates the PostgreSQL users automatically. -To create PostgreSQL users for X-Road instance *EX* run the following commands: +To create PostgreSQL users for X-Road instance *LTT* run the following commands: ```bash sudo su postgres @@ -150,7 +150,7 @@ to configure the X-Road Metrics modules. The 'Escaped Password' column contains escaped format that can be directly added to the config files. Database relations and relevant indices will be created dynamically during the first run of -[Anonymizer module](anonymizer.md), according to the supplied configuration. +[Anonymizer module](anonymizer_module.md), according to the supplied configuration. **Note:** PostgreSQL doesn't allow dashes and case sensitivity comes with a hassle. This means that for PostgreSQL instance it is suggested to use underscores and lower characters. @@ -195,7 +195,7 @@ host all all 0.0.0.0/0 reject **Note:** `host` type access can be substituted with `hostssl` if using SSL-encrypted connections. -Then edit the `/etc/postgresql/12/main/postgresql.conf` or `/etc/postgresql/14/main/pg_hba.conf` and change the *listen_addresses* to +Then edit the `/etc/postgresql/12/main/postgresql.conf` or `/etc/postgresql/14/main/postgresql.conf` and change the *listen_addresses* to ``` listen_addresses = '*' ``` @@ -213,20 +213,20 @@ sudo systemctl restart postgresql For a connection to be known SSL-secured, SSL usage must be configured on both the client and the server before the connection is made. If it is only configured on the server, the client may end up sending sensitive information before it knows that the server requires high security. -To ensure secure connections `ssl-mode` and `ssl-root-cert` parameterers has to be provided in settings file. +To ensure secure connections `ssl-mode` and `ssl-root-cert` parameters has to be provided in settings file. Possible values for `ssl-mode`: `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full` For detailed information see https://www.postgresql.org/docs/current/libpq-ssl.html To configure path to the SSL root certificate, set `ssl-root-cert` -Example of `/etc/settings.yaml` entry: +Example of `/etc/[module]/settings.yaml` entry: ``` postgres: host: localhost port: 5432 user: postgres password: ******* - database-name: postgres + database-name: opendata_LTT table-name: logs ssl-mode: verify-full ssl-root-cert: /etc/ssl/certs/root.crt @@ -414,7 +414,7 @@ logger: ``` -The heartbeat file is written to `heartbeat-path` and hearbeat file name contains the X-Road instance name. +The heartbeat file is written to `heartbeat-path` and heartbeat file name contains the X-Road instance name. The above example configuration would write logs to `/var/log/xroad-metrics/opendata/heartbeat/heartbeat_opendata_EXAMPLE.json`. diff --git a/docs/reports_module.md b/docs/reports_module.md index 317a42eb..ef284312 100644 --- a/docs/reports_module.md +++ b/docs/reports_module.md @@ -60,8 +60,8 @@ sudo add-apt-repository 'https://artifactory.niis.org/xroad-extensions-release-d ```` The following information can be used to verify the key: -- key hash: 935CC5E7FA5397B171749F80D6E3973B -- key fingerprint: A01B FE41 B9D8 EAF4 872F A3F1 FB0D 532C 10F6 EC5B +- key hash: `935CC5E7FA5397B171749F80D6E3973B` +- key fingerprint: `A01B FE41 B9D8 EAF4 872F A3F1 FB0D 532C 10F6 EC5B` - 3rd party key server: [Ubuntu key server](https://keyserver.ubuntu.com/pks/lookup?search=0xfb0d532c10f6ec5b&fingerprint=on&op=index) @@ -98,32 +98,41 @@ To use xroad-metrics-reports you need to fill in your X-Road and MongoDB configu ```bash sudo vi /etc/xroad-metrics/reports/settings.yaml ``` +> [!TIP] +> For a complete list of available settings, please refer to this [settings.yaml](../reports_module/etc/settings.yaml) template file. Settings that the user must fill in: * X-Road instance name * username and password for the reports-module MongoDB user * e-mail template, SMTP server and port -To run xroad-metrics-reports for multiple X-Road instances, a settings profile for each instance can be created. -For example to have profiles DEV, TEST and PROD create three copies of `setting.yaml` file named -`settings_DEV.yaml`, `settings_TEST.yaml` and `settings_PROD.yaml`. -Then fill the profile specific settings to each file and use the --profile -flag when running xroad-metrics-reports. For example to run using the TEST profile: -``` -xroad-metrics-reports --profile TEST reports -``` +### Settings Profiles -`xroad-metrics-reports` command searches the settings file first in current working direcrtory, then in -_/etc/xroad-metrics/reports/_ +To run xroad-metrics-reports for multiple X-Road instances, a settings profile for each instance can be created. +1. To have profiles `DEV`, `TEST`, and `PROD` create three copies of `setting.yaml` +file named `settings_DEV.yaml`, `settings_TEST.yaml`, and `settings_PROD.yaml`. +2. Fill the profile specific settings to each file +3. Use the `--profile` flag when running `xroad-metrics-reports`. + For example to run reports manually using the TEST profile: + ```bash + xroad-metrics-reports --profile TEST report + ``` +> [!IMPORTANT] +> `xroad-metrics-reports` command searches the settings file first in current working directory, then in +`/etc/xroad-metrics/reports/` Available languages for the reports are: -``` -en - english -et - estonian -``` +| Code | Language | +|------|-----------| +| en | English | +| et | Estonian | + -Report language translation files can be found in path _/etc/xroad-metrics/reports/lang_ +Report language translation files can be found in path `/etc/xroad-metrics/reports/lang` + +> [!TIP] +> Sample translation files can be found [here](../reports_module/etc/lang/). ### Report Targets @@ -195,9 +204,9 @@ sudo su xroad-metrics Available actions: ```bash -xroad-metrics-reports report # Generate reports using default arguments -xroad-metrics-reports notify # Send pending e-mail notifications -opmnon-reports --help # Show available command line arguments +xroad-metrics-reports report # Generate reports using default arguments +xroad-metrics-reports notify # Send pending e-mail notifications +xroad-metrics-reports --help # Show available command line arguments ``` Above examples use the default settings file. To use another settings profile, you can use --profile flag: @@ -219,12 +228,12 @@ have finished processing data for that month. By default the cron job is configu which should allow for a long enough grace period. If you want to change the reports cronjob scheduling or settings profiles, edit the file e.g. with vi -``` +```bash vi /etc/cron.d/xroad-metrics-reports-cron ``` -and make your changes. For example to run reports every six months on the 15th day using settings profiles PROD and TEST: +and make your changes. For example to run reports every six months on the 15th day using settings profiles `PROD` and `TEST`: ```bash -# m h dom mon dow user command +# m h dom mon dow user command 1 0 15 */6 * xroad-metrics xroad-metrics-reports --profile TEST report 1 3 15 */6 * xroad-metrics xroad-metrics-reports --profile PROD report @@ -235,7 +244,7 @@ If reports-generation is to be run only manually, comment out the default cron t # 1 0 10 * * xroad-metrics xroad-metrics-reports report ``` -### Publishing Reoprts +### Publishing Reports Using default settings the xroad-metrics-reports command generates report pdf files into folder _/home/xroad-metrics/reports_. If you want to publish the reports on some external file server, you can setup e.g. a rsync cronjob. Below example assumes your file-server hostname is _myfileserver_ and user _myuser_ can access it with from the @@ -270,7 +279,7 @@ server { # enable new site: sudo ln -s /etc/nginx/sites-available/reports /etc/nginx/sites-enabled/ -# test new configuratio +# test new configuration sudo nginx -t # set up relevant directories @@ -291,7 +300,7 @@ sudo usermod -aG www-data _myuser_ # new user should be able access /var/data/reports and have permissions to create files there ``` -#### Set up SSH authentificaton for _myuser_ on reports server +#### Set up SSH authentication for _myuser_ on reports server ```bash ssh-keygen -t rsa -b 4096 -N "" @@ -368,7 +377,7 @@ Every log line includes: The **reports module** log handler is compatible with the logrotate utility. To configure log rotation for the example setup above, create the file: -``` +```bash sudo vi /etc/logrotate.d/xroad-metrics-reports ``` @@ -382,7 +391,7 @@ and add the following content : For further log rotation options, please refer to logrotate manual: -``` +```bash man logrotate ``` @@ -402,7 +411,7 @@ logger: ``` -The heartbeat file is written to `heartbeat-path` and hearbeat file name contains the X-Road instance name. +The heartbeat file is written to `heartbeat-path` and heartbeat file name contains the X-Road instance name. The above example configuration would write logs to `/var/log/xroad-metrics/reports/heartbeat/heartbeat_reports_EXAMPLE.json`. The heartbeat file consists last message of log file and status diff --git a/docs/system_architecture.md b/docs/system_architecture.md index d0614cd8..c6178bca 100644 --- a/docs/system_architecture.md +++ b/docs/system_architecture.md @@ -79,7 +79,7 @@ Taking to account the operational requirements above, it is recommended to insta dedicated server or virtual machine. In a usual X-Road Metrics setup there is data on two privacy levels. The MongoDb contains data that might contain -sensitivie information like IP-addresses or personal data. That should be accessible only by the X-Road administrators. +sensitive information like IP-addresses or personal data. That should be accessible only by the X-Road administrators. The open data stored in the PostgreSQL is anonymized and intended for public distribution. Thus, it is recommended to configure the network infrastructure so that the modules handling and serving the open data diff --git a/docs/user_guide/ug_reports.md b/docs/user_guide/ug_reports.md index a73bf10f..a5cc1e6a 100644 --- a/docs/user_guide/ug_reports.md +++ b/docs/user_guide/ug_reports.md @@ -53,7 +53,7 @@ should be considered: * When the institution has changed administrators, the new administrator should now have access to old reports without the previous administrator forwarding the references to him -* And administrator that has left the institution should no longer recieve +* And administrator that has left the institution should no longer receive notifications about new reports Reports are generated in all configured environments based on the `cron` @@ -118,7 +118,7 @@ producerDurationProducerView = Producer responseOutTs (6) - Producer requestInTs ### What are `metaservices` -Metaservices are services that provide informatin about the X-Road instance or +Metaservices are services that provide information about the X-Road instance or the services located on it. An example of these are the `listMethods`, `getWsdl` ja `getOpenAPI` metaservices. diff --git a/integration_tests/ci_reports/test_report_worker_CI.py b/integration_tests/ci_reports/test_report_worker_CI.py index 6f97a198..2fe9ec72 100644 --- a/integration_tests/ci_reports/test_report_worker_CI.py +++ b/integration_tests/ci_reports/test_report_worker_CI.py @@ -171,21 +171,25 @@ def test_get_matching_documents_different_cases(self): docs.append(doc_test_machine) mongodb_h.add_clean_documents(docs) - # Query faulty documents - faulty_doc_set = db_manager.get_faulty_documents( - test_machine[2], test_machine[3], test_machine[1], - test_machine[0], start_timestamp, end_timestamp) - faulty_docs_found = set() + duplicate_docs_found = set() # member_code, subsystem_code, member_class, x_road_instance, start_time_timestamp, end_time_timestamp matching_docs = [] for doc in db_manager.get_matching_documents(test_machine[2], test_machine[3], test_machine[1], test_machine[0], start_timestamp, end_timestamp): - if doc['_id'] in faulty_docs_found: + if doc['_id'] in duplicate_docs_found: continue - if doc['_id'] in faulty_doc_set: - faulty_docs_found.add(doc['_id']) + doc = ReportManager.reduce_to_plain_json(doc) + # If client and service is the same subsystem, + # then matching_docs contain two identical documents + if ( + doc['serviceXRoadInstance'] == doc['clientXRoadInstance'] + and doc['serviceMemberClass'] == doc['clientMemberClass'] + and doc['serviceMemberCode'] == doc['clientMemberCode'] + and doc['serviceSubsystemCode'] == doc['clientSubsystemCode'] + ): + duplicate_docs_found.add(doc['_id']) matching_docs.append(doc) self.assertEqual(len(matching_docs), total_ref_count) diff --git a/opendata_collector_module/Makefile b/opendata_collector_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/opendata_collector_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/opendata_collector_module/metrics_opendata_collector/__init__.py b/opendata_collector_module/metrics_opendata_collector/__init__.py index 80e48ed8..c64fb837 100644 --- a/opendata_collector_module/metrics_opendata_collector/__init__.py +++ b/opendata_collector_module/metrics_opendata_collector/__init__.py @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -__version__ = '1.2.0' +__version__ = '1.3.0' diff --git a/opendata_collector_module/setup.py b/opendata_collector_module/setup.py index cd7340b2..40ef5d2d 100644 --- a/opendata_collector_module/setup.py +++ b/opendata_collector_module/setup.py @@ -26,11 +26,11 @@ requirements = [ 'setuptools==67.4.0', - 'pymongo==3.10.1', - 'requests==2.31.0', - 'tqdm==4.30.0', - 'pyyaml==5.4.1', - 'urllib3==1.26.14', + 'pymongo==4.6.3', + 'requests==2.32.3', + 'tqdm==4.66.4', + 'pyyaml==6.0.1', + 'urllib3==1.26.18', ] classifiers = [ diff --git a/opendata_collector_module/test_requirements.txt b/opendata_collector_module/test_requirements.txt index dbd8cf42..01172870 100644 --- a/opendata_collector_module/test_requirements.txt +++ b/opendata_collector_module/test_requirements.txt @@ -2,5 +2,6 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html vcrpy==1.5.2 pymongo-stubs diff --git a/opendata_collector_module/tox.ini b/opendata_collector_module/tox.ini index c051965b..7159c142 100644 --- a/opendata_collector_module/tox.ini +++ b/opendata_collector_module/tox.ini @@ -6,7 +6,7 @@ deps = -rtest_requirements.txt [testenv:py38-pytest] install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source metrics_opendata_collector -m pytest metrics_opendata_collector/ + coverage run --source metrics_opendata_collector -m pytest metrics_opendata_collector/ coverage report --include=metrics_opendata_collector/* coverage html -d ../htmlcov/opendata_collector_module --include=metrics_opendata_collector/* [testenv:py38-mypy] diff --git a/opendata_module/Makefile b/opendata_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/opendata_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/opendata_module/opmon_opendata/__init__.py b/opendata_module/opmon_opendata/__init__.py index 80e48ed8..c64fb837 100644 --- a/opendata_module/opmon_opendata/__init__.py +++ b/opendata_module/opmon_opendata/__init__.py @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -__version__ = '1.2.0' +__version__ = '1.3.0' diff --git a/opendata_module/opmon_opendata/static/gui/index.js b/opendata_module/opmon_opendata/static/gui/index.js index 8575c693..fdaa993b 100644 --- a/opendata_module/opmon_opendata/static/gui/index.js +++ b/opendata_module/opmon_opendata/static/gui/index.js @@ -183,7 +183,9 @@ function displayPreview() { ajax: API_ROOT + '/logs_sample' + getQuery(), cache: false, scrollX: true, - ordering: false + ordering: false, + lengthChange: false, + searching: false, } ); }) } diff --git a/opendata_module/setup.py b/opendata_module/setup.py index b6cdf91b..b028a457 100644 --- a/opendata_module/setup.py +++ b/opendata_module/setup.py @@ -26,12 +26,12 @@ requirements = [ 'setuptools==67.4.0', - 'dill==0.3.1.1', + 'dill==0.3.8', 'django==3.2.20', - 'pymongo==3.10.1', - 'pyyaml==5.4.1', - 'psycopg2==2.8.6', - 'python-dateutil==2.8.1', + 'pymongo==4.6.3', + 'pyyaml==6.0.1', + 'psycopg2==2.9.9', + 'python-dateutil==2.9.0.post0', ] classifiers = [ diff --git a/opendata_module/test_requirements.txt b/opendata_module/test_requirements.txt index 1e811dd3..42951eba 100644 --- a/opendata_module/test_requirements.txt +++ b/opendata_module/test_requirements.txt @@ -2,6 +2,7 @@ coverage pytest pytest-mock pytest-pycodestyle +pytest-html mongomock psycopg2-binary pytest-django diff --git a/opendata_module/tox.ini b/opendata_module/tox.ini index d61db7da..2ff1ca89 100644 --- a/opendata_module/tox.ini +++ b/opendata_module/tox.ini @@ -8,7 +8,7 @@ deps = [testenv:py38-pytest] install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source opmon_opendata -m pytest opmon_opendata/ + coverage run --source opmon_opendata -m pytest opmon_opendata/ coverage report --include=opmon_opendata/* coverage html -d ../htmlcov/opendata_module --include=opmon_opendata/* [testenv:py38-legacy_django] diff --git a/reports_module/Makefile b/reports_module/Makefile new file mode 100644 index 00000000..6be15f5a --- /dev/null +++ b/reports_module/Makefile @@ -0,0 +1,10 @@ +clean: + @echo "Cleaning project..." + @find . -type d -name "__pycache__" -exec rm -rf {} + + @rm -rf .coverage + @rm -rf .tox/ + @rm -rf build/ + @rm -rf dist/ + @rm -rf *.egg-info/ + @rm -rf opmon_collector/tests/responses/Test/ + @echo "Project cleaned." \ No newline at end of file diff --git a/reports_module/etc/settings.yaml b/reports_module/etc/settings.yaml index 322395cd..1a5ce19b 100644 --- a/reports_module/etc/settings.yaml +++ b/reports_module/etc/settings.yaml @@ -32,6 +32,9 @@ reports: # Generated report pdf-files will be stored in this path report-path: /var/lib/xroad-metrics/reports + # Additionally generate csv reports + # generate-csv: False + # Language translation config files are stored in this path translation-path: /etc/xroad-metrics/reports/lang @@ -74,6 +77,14 @@ reports: Report name: {REPORT_NAME} + Produced services (CSV): csv/{REPORT_NAME_NO_EXT}_prod_serv.csv + + Produced metaservices (CSV): csv/{REPORT_NAME_NO_EXT}_prod_meta.csv + + Consumed services (CSV): csv/{REPORT_NAME_NO_EXT}_cons_serv.csv + + Consumed metaservices (CSV): csv/{REPORT_NAME_NO_EXT}_cons_meta.csv + X-Road subsystem: {X_ROAD_INSTANCE}:{MEMBER_CLASS}:{MEMBER_CODE}:{SUBSYSTEM_CODE} Report time period: from {START_DATE} to {END_DATE} diff --git a/reports_module/opmon_reports/__init__.py b/reports_module/opmon_reports/__init__.py index 80e48ed8..c64fb837 100644 --- a/reports_module/opmon_reports/__init__.py +++ b/reports_module/opmon_reports/__init__.py @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -__version__ = '1.2.0' +__version__ = '1.3.0' diff --git a/reports_module/opmon_reports/database_manager.py b/reports_module/opmon_reports/database_manager.py index a54ee490..ad6d83a9 100644 --- a/reports_module/opmon_reports/database_manager.py +++ b/reports_module/opmon_reports/database_manager.py @@ -66,40 +66,68 @@ def get_matching_documents(self, target, start_time, end_time): # ------------------------------------ # Query matching documents as producer query_a = { - "producer.serviceXRoadInstance": target.xroad_instance, - "producer.serviceMemberCode": target.member_code, - "producer.serviceSubsystemCode": target.subsystem_code, - "producer.serviceMemberClass": target.member_class, - "producer.requestInTs": {"$gte": start_time, "$lte": end_time} + "query": { + "producer.serviceXRoadInstance": target.xroad_instance, + "producer.serviceMemberCode": target.member_code, + "producer.serviceSubsystemCode": target.subsystem_code, + "producer.serviceMemberClass": target.member_class, + "producer.requestInTs": {"$gte": start_time, "$lte": end_time} + }, + "hint": [ + ("producer.serviceMemberCode", 1), + ("producer.serviceSubsystemCode", 1), + ("producer.requestInTs", 1) + ] } # Query matching documents as producer from client field query_c = { - "client.serviceXRoadInstance": target.xroad_instance, - "client.serviceMemberCode": target.member_code, - "client.serviceSubsystemCode": target.subsystem_code, - "client.serviceMemberClass": target.member_class, - "producer": None, - "client.requestInTs": {"$gte": start_time, "$lte": end_time} + "query": { + "client.serviceXRoadInstance": target.xroad_instance, + "client.serviceMemberCode": target.member_code, + "client.serviceSubsystemCode": target.subsystem_code, + "client.serviceMemberClass": target.member_class, + "producer": None, + "client.requestInTs": {"$gte": start_time, "$lte": end_time} + }, + "hint": [ + ("client.serviceMemberCode", 1), + ("client.serviceSubsystemCode", 1), + ("client.requestInTs", 1) + ] } # ------------------------------------ # Client group # ------------------------------------ # Query matching documents as client query_d = { - "client.clientXRoadInstance": target.xroad_instance, - "client.clientMemberCode": target.member_code, - "client.clientSubsystemCode": target.subsystem_code, - "client.clientMemberClass": target.member_class, - "client.requestInTs": {"$gte": start_time, "$lte": end_time} + "query": { + "client.clientXRoadInstance": target.xroad_instance, + "client.clientMemberCode": target.member_code, + "client.clientSubsystemCode": target.subsystem_code, + "client.clientMemberClass": target.member_class, + "client.requestInTs": {"$gte": start_time, "$lte": end_time} + }, + "hint": [ + ("client.clientMemberCode", 1), + ("client.clientSubsystemCode", 1), + ("client.requestInTs", 1) + ] } # Query matching documents as client from producer query_b = { - "producer.clientXRoadInstance": target.xroad_instance, - "producer.clientMemberCode": target.member_code, - "producer.clientSubsystemCode": target.subsystem_code, - "producer.clientMemberClass": target.member_class, - "client": None, - "producer.requestInTs": {"$gte": start_time, "$lte": end_time} + "query": { + "producer.clientXRoadInstance": target.xroad_instance, + "producer.clientMemberCode": target.member_code, + "producer.clientSubsystemCode": target.subsystem_code, + "producer.clientMemberClass": target.member_class, + "client": None, + "producer.requestInTs": {"$gte": start_time, "$lte": end_time} + }, + "hint": [ + ("producer.clientMemberCode", 1), + ("producer.clientSubsystemCode", 1), + ("producer.requestInTs", 1) + ] } # Define projection @@ -142,54 +170,12 @@ def get_matching_documents(self, target, start_time, end_time): queries = [query_a, query_b, query_c, query_d] for q in queries: - for doc in collection.find(q, projection): + for doc in collection.find(q["query"], projection).hint(q["hint"]): yield doc except Exception as e: self.logger_m.log_error('DatabaseManager.get_matching_documents', '{0}'.format(repr(e))) raise e - def get_faulty_documents(self, target, start_time, end_time): - try: - db = self.mongodb_handler.get_query_db() - collection = db[CLEAN_DATA_COLLECTION] - - query_a = { - "producer.serviceXRoadInstance": target.xroad_instance, - "producer.serviceMemberCode": target.member_code, - "producer.serviceSubsystemCode": target.subsystem_code, - "producer.serviceMemberClass": target.member_class, - "producer.requestInTs": {"$gte": start_time, "$lte": end_time}, - "client.clientXRoadInstance": target.xroad_instance, - "client.clientMemberCode": target.member_code, - "client.clientSubsystemCode": target.subsystem_code, - "client.clientMemberClass": target.member_class, - "client.requestInTs": {"$gte": start_time, "$lte": end_time} - } - - query_b = { - "client.serviceXRoadInstance": target.xroad_instance, - "client.serviceMemberCode": target.member_code, - "client.serviceSubsystemCode": target.subsystem_code, - "client.serviceMemberClass": target.member_class, - "client.requestInTs": {"$gte": start_time, "$lte": end_time}, - "producer.clientXRoadInstance": target.xroad_instance, - "producer.clientMemberCode": target.member_code, - "producer.clientSubsystemCode": target.subsystem_code, - "producer.clientMemberClass": target.member_class, - "producer.requestInTs": {"$gte": start_time, "$lte": end_time} - } - - faulty_set = set() - - for q in [query_a, query_b]: - for doc in collection.find(q, {"_id": 1}): - faulty_set.add(doc['_id']) - - except Exception as e: - self.logger_m.log_error('DatabaseManager.get_matching_documents', '{0}'.format(repr(e))) - raise e - return faulty_set - def get_documents_within_time_frame(self, start_time, end_time): """ Get all the documents for specified time period. diff --git a/reports_module/opmon_reports/logger_manager.py b/reports_module/opmon_reports/logger_manager.py index d8481e9d..4352f836 100644 --- a/reports_module/opmon_reports/logger_manager.py +++ b/reports_module/opmon_reports/logger_manager.py @@ -58,7 +58,7 @@ def _create_file_handler(self): def _handler_is_set(self, handlers): for handler in handlers: - if handler is WatchedFileHandler and os.path.abspath(self.log_path) == handler.baseFilename: + if isinstance(handler, WatchedFileHandler) and os.path.abspath(self.log_path) == handler.baseFilename: return True return False diff --git a/reports_module/opmon_reports/notification_manager.py b/reports_module/opmon_reports/notification_manager.py index 1edf7b34..0d182d7d 100644 --- a/reports_module/opmon_reports/notification_manager.py +++ b/reports_module/opmon_reports/notification_manager.py @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +import os import smtplib import ssl from typing import Iterable @@ -85,7 +86,8 @@ def send_mail(self, notification: dict, receiver: dict): 'MEMBER_CODE': notification['member_code'], 'SUBSYSTEM_CODE': notification['subsystem_code'], 'START_DATE': notification['start_date'], - 'END_DATE': notification['end_date'] + 'END_DATE': notification['end_date'], + 'REPORT_NAME_NO_EXT': os.path.splitext(notification['report_name'])[0] } msg = MIMEText(self.settings['message'].format( diff --git a/reports_module/opmon_reports/report_manager.py b/reports_module/opmon_reports/report_manager.py index 734ad8eb..11efb12b 100644 --- a/reports_module/opmon_reports/report_manager.py +++ b/reports_module/opmon_reports/report_manager.py @@ -139,12 +139,7 @@ def merge_document_fields(document, merged_fields, new_field_name, separator): def get_documents(self): report_map = dict() - faulty_doc_set = self.database_manager.get_faulty_documents( - self.target, - self.reports_arguments.start_time_milliseconds, - self.reports_arguments.end_time_milliseconds - ) - faulty_docs_found = set() + duplicate_docs_found = set() matching_docs = self.database_manager.get_matching_documents( self.target, @@ -154,12 +149,19 @@ def get_documents(self): # Iterate over all the docs and append to report map for doc in matching_docs: - if doc['_id'] in faulty_docs_found: + if doc['_id'] in duplicate_docs_found: continue - if doc['_id'] in faulty_doc_set: - faulty_docs_found.add(doc['_id']) doc = self.reduce_to_plain_json(doc) + # If client and service is the same subsystem, + # then matching_docs contain two identical documents + if ( + doc['serviceXRoadInstance'] == doc['clientXRoadInstance'] + and doc['serviceMemberClass'] == doc['clientMemberClass'] + and doc['serviceMemberCode'] == doc['clientMemberCode'] + and doc['serviceSubsystemCode'] == doc['clientSubsystemCode'] + ): + duplicate_docs_found.add(doc['_id']) # "ps" / "pms" / "cs" / "cms" sorted_service_type = self.get_service_type(doc) @@ -512,6 +514,35 @@ def save_pdf_to_file(self, html: str, creation_time): return report_name + def save_csv_to_file(self, data_frames, creation_time): + settings = self.reports_arguments.settings['reports'] + output_directory = os.path.join( + settings['report-path'], + self.target.xroad_instance, + self.target.member_class, + self.target.member_code, + 'csv' + ) + if not os.path.isdir(output_directory): + os.makedirs(output_directory) + + csv_suffixes = ( + 'prod_serv', + 'prod_meta', + 'cons_serv', + 'cons_meta' + ) + + for i in range(len(csv_suffixes)): + report_name = ( + f'{tools.format_string(self.target.subsystem_code)}_{self.start_date}_' + f'{self.end_date}_{creation_time}_{csv_suffixes[i]}.csv') + report_file = os.path.join(output_directory, report_name) + + self.logger_manager.log_info( + 'save_csv_to_file', f'Saving CSV report file "{report_file}".') + data_frames[i].to_csv(path_or_buf=report_file) + def generate_report(self): start_generate_report = time.time() @@ -524,6 +555,8 @@ def generate_report(self): creation_time = time_date_tools.datetime_to_modified_string(datetime.now()) template = self.prepare_template(plots, data_frames, creation_time) report_name = self.save_pdf_to_file(template, creation_time) + if self.reports_arguments.settings['reports'].get('generate-csv', False): + self.save_csv_to_file(data_frames, creation_time) end_generate_report = time.time() total_time = time.strftime("%H:%M:%S", time.gmtime(end_generate_report - start_generate_report)) diff --git a/reports_module/opmon_reports/tests/test_report_manager.py b/reports_module/opmon_reports/tests/test_report_manager.py index c8894d62..5c14b9d8 100644 --- a/reports_module/opmon_reports/tests/test_report_manager.py +++ b/reports_module/opmon_reports/tests/test_report_manager.py @@ -16,6 +16,10 @@ def basic_args(mocker): args.start_date = "2017-01-01" args.end_date = "2017-01-01" args.language = "en" + args.settings = { + 'reports': { + } + } return args diff --git a/reports_module/setup.py b/reports_module/setup.py index 5b403044..5240e4f7 100644 --- a/reports_module/setup.py +++ b/reports_module/setup.py @@ -25,17 +25,18 @@ from setuptools import setup, find_packages requirements = [ - 'markupsafe==2.0.1', - 'Jinja2==2.10.1', - 'matplotlib==3.1.2', + 'markupsafe==2.1.5', + 'Jinja2==3.1.4', + 'matplotlib==3.5.3', 'pandas==2.0.3', - 'weasyprint==51', - 'Pillow==10.0.0', - 'pymongo==3.10.1', - 'pyyaml==5.4.1', - 'requests==2.22.0', + 'weasyprint==61.2', + 'Pillow==10.3.0', + 'pymongo==4.6.3', + 'pyyaml==6.0.1', + 'requests==2.32.3', 'tinycss==0.4', - 'jsonschema==3.2.0', + 'jsonschema==4.22.0', + 'numpy==1.24.4', ] classifiers = [ diff --git a/reports_module/test_requirements.txt b/reports_module/test_requirements.txt index 3e5b2c2d..aecfcdf3 100644 --- a/reports_module/test_requirements.txt +++ b/reports_module/test_requirements.txt @@ -3,4 +3,4 @@ mongomock pytest pytest-mock pytest-pycodestyle - +pytest-html diff --git a/reports_module/tox.ini b/reports_module/tox.ini index 10b861b9..8bcf4ffa 100644 --- a/reports_module/tox.ini +++ b/reports_module/tox.ini @@ -5,7 +5,7 @@ envlist = py38 deps = -rtest_requirements.txt install_command=pip install --only-binary=numpy {opts} numpy {packages} commands = - - coverage run --source opmon_reports -m pytest opmon_reports/ + coverage run --source opmon_reports -m pytest opmon_reports/ coverage report --include=opmon_reports/* coverage html -d ../htmlcov/reports_module --include=opmon_reports/* diff --git a/run_tests.sh b/run_tests.sh old mode 100644 new mode 100755 index cd9edf36..2a0baa33 --- a/run_tests.sh +++ b/run_tests.sh @@ -3,33 +3,19 @@ # sudo python3 -m pip install pytest # pip install pytest-pep8 -export REPORTS_RUN_ENV="REPORTS_TEST" - -set -e - -# Run Pep8 Tests -python3 -m pytest --pep8 -m pep8 collector_module --ignore=collector_module/external_files -python3 -m pytest --pep8 -m pep8 corrector_module -python3 -m pytest --pep8 -m pep8 reports_module -# python3 -m pytest --pep8 -m pep8 analysis_module/analyzer_ui -# python3 -m pytest --pep8 -m pep8 analysis_module/analyzer -python3 -m pytest --pep8 -m pep8 opendata_module/anonymizer - -# echo "Test Corrector" -# python3 -m pytest corrector_module - -echo "Test Reports" -python3 -m pytest reports_module -# python3 -m pytest analysis_module/analyzer_ui -# python3 -m pytest analysis_module/analyzer -python3 -m pytest opendata_module/anonymizer -# python3 -m pytest opendata_module/interface +## Run Tests +echo "Run tests" +#pytest --cache-clear analysis_module --html=analysis_module/test_results.html --self-contained-html +#pytest --cache-clear analysis_ui_module --html=analysis_ui_module/test_results.html --self-contained-html +pytest --cache-clear anonymizer_module --html=anonymizer_module/test_results.html --self-contained-html +pytest --cache-clear collector_module --html=collector_module/test_results.html --self-contained-html +pytest --cache-clear corrector_module --html=corrector_module/test_results.html --self-contained-html +#pytest --cache-clear opendata_collector_module --html=opendata_collector_module/test_results.html --self-contained-html +pytest --cache-clear opendata_module --html=opendata_module/test_results.html --self-contained-html +pytest --cache-clear reports_module --html=reports_module/test_results.html --self-contained-html # Run CI Tests if [[ $1 == 'CI' ]] ; then echo "Test integration" python3 -m pytest integration_tests fi - -# Test Open Data interface's input validation -# python3 -m pytest opendata_module/interface/