# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

---

name: conjunctive normal form conversion code, a variance aggregator algorithm, and Bloom filter adapted from Apache Hive
version:
license_category: source
module: java-core
license_name: Apache License version 2.0
source_paths:
  - processing/src/main/java/org/apache/druid/segment/filter/cnf/HiveCnfHelper.java
  - extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregatorCollector.java
  - extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/filter/BloomKFilter.java

---

name: variable length long deserialization code adapted from Apache Lucene
license_category: source
module: java-core
license_name: Apache License version 2.0
source_paths:
  - processing/src/main/java/org/apache/druid/segment/data/VSizeLongSerde.java

---

name: SQL query planning code adapted from Apache Calcite
license_category: source
module: java-core
license_name: Apache License version 2.0
source_paths:
  - sql/src/main/java/org/apache/druid/sql/calcite/
  - processing/src/main/java/org/apache/druid/segment/filter/cnf/CalciteCnfHelper.java

---

name: Kerberos authentication code adapted from Apache Hadoop
license_category: source
module: java-core
license_name: Apache License version 2.0
source_paths:
  - extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/

---

name: a modified version of the java-alphanum library
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: Andrew Duffy (https://github.com/amjjd/java-alphanum)
source_paths:
  - processing/src/main/java/org/apache/druid/query/ordering/StringComparators.java

---

name: a modified version of the Metamarkets java-util library
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: Metamarkets Group Inc. (https://github.com/metamx/java-util)
source_paths:
  - java-util/

---

name: a modified version of the Metamarkets bytebuffer-collections library
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: Metamarkets Group Inc. (https://github.com/metamx/bytebuffer-collections)
source_paths:
  - processing/src/main/java/org/apache/druid/collections/

---

name: a modified version of the Metamarkets extendedset library
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: Metamarkets Group Inc. (https://github.com/metamx/extendedset)
source_paths:
  - extendedset/

---

name: a modified version of the CONCISE (COmpressed 'N' Composable Integer SEt) library
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: Alessandro Colantonio (https://sourceforge.net/projects/concise/)
source_paths:
  - extendedset/src/main/java/org/apache/druid/extendedset/intset/

---

name: modified portions of the Guava library
license_category: source
license_name: Apache License version 2.0
module: java-core
copyright: The Guava Authors (https://github.com/google/guava)
source_paths:
  - Closer class: processing/src/main/java/org/apache/druid/java/util/common/io/Closer.java
  - Splitter.splitToList() method: processing/src/main/java/org/apache/druid/java/util/common/parsers/DelimitedParser.java
  - DirectExecutorService class: processing/src/main/java/org/apache/druid/java/util/common/concurrent/DirectExecutorService.java

---

name: modified versions of the Dockerfile and related configuration files
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: SequenceIQ's Hadoop Docker image, copyright SequenceIQ, Inc. (https://github.com/sequenceiq/hadoop-docker/)
source_paths:
  - examples/quickstart/tutorial/hadoop/docker/

---

name: fixed bins histogram percentile computation code adapted from Netflix Spectator
license_category: source
module: java-core
license_name: Apache License version 2.0
copyright: Netflix, Inc. (https://github.com/Netflix/spectator)
source_paths:
  - extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogram.java

---

name: code adapted from Apache Knox KnoxSessionStore and ConfigurableEncryptor
license_category: source
module: extensions/druid-pac4j
license_name: Apache License version 2.0
source_paths:
  - extensions-core/druid-pac4j/src/main/java/org/apache/druid/security/pac4j/Pac4jSessionStore.java
  - processing/src/main/java/org/apache/druid/crypto/CryptoService.java

---

name: Code adopted from org.apache.commons.dbcp2.BasicDataSource
license_category: source
module: server
license_name: Apache License version 2.0
version: 2.0.1
source_paths:
  - server/src/main/java/org/apache/druid/metadata/BasicDataSourceExt.java
notice: |
  Apache Commons DBCP
  Copyright 2001-2020 The Apache Software Foundation

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

---

name: LDAP string encoding function from OWASP ESAPI
license_category: source
module: extensions/druid-basic-security
license_name: BSD-3-Clause License
copyright: The OWASP Foundation (https://github.com/ESAPI/esapi-java-legacy)
license_file_path: licenses/src/esapi.BSD3
source_paths:
  - extensions-core/druid-basic-security/src/main/java/org/apache/druid/security/basic/authentication/validator/LDAPCredentialsValidator.java

---

name: Test Framework for Apache Drill
version:
url: https://github.com/apache/drill-test-framework
license_category: source
module: java-core
license_name: Apache License version 2.0
source_paths:
  - sql/src/test/resources/drill/window

---

name: AWS SDK for Java
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.12.638
libraries:
  - com.amazonaws: aws-java-sdk-core
  - com.amazonaws: aws-java-sdk-ec2
  - com.amazonaws: aws-java-sdk-kms
  - com.amazonaws: aws-java-sdk-s3
  - com.amazonaws: aws-java-sdk-kinesis
  - com.amazonaws: aws-java-sdk-sts
  - com.amazonaws: aws-java-sdk-rds
  - com.amazonaws: jmespath-java
notice: |
  AWS SDK for Java
  Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.

  This product includes software developed by
  Amazon Technologies, Inc (http://www.amazon.com/).

  **********************
  THIRD PARTY COMPONENTS
  **********************
  This software includes third party software subject to the following copyrights:
  - XML parsing and utility functions from JetS3t - Copyright 2006-2009 James Murty.
  - PKCS#1 PEM encoded private key parsing and utility functions from oauth.googlecode.com - Copyright 1998-2010 AOL Inc.

  The licenses for these third party components are included in LICENSE.txt

---

name: Jackson
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.12.7
libraries:
  - com.fasterxml.jackson.core: jackson-annotations
  - com.fasterxml.jackson.core: jackson-core
  - com.fasterxml.jackson.dataformat: jackson-dataformat-cbor
  - com.fasterxml.jackson.dataformat: jackson-dataformat-smile
  - com.fasterxml.jackson.dataformat: jackson-dataformat-xml
  - com.fasterxml.jackson.datatype: jackson-datatype-guava
  - com.fasterxml.jackson.datatype: jackson-datatype-joda
  - com.fasterxml.jackson.datatype: jackson-datatype-jsr310
  - com.fasterxml.jackson.jaxrs: jackson-jaxrs-base
  - com.fasterxml.jackson.jaxrs: jackson-jaxrs-json-provider
  - com.fasterxml.jackson.jaxrs: jackson-jaxrs-smile-provider
  - com.fasterxml.jackson.module: jackson-module-jaxb-annotations
  - com.fasterxml.jackson.module: jackson-module-guice
notice: |
  # Jackson JSON processor

  Jackson is a high-performance, Free/Open Source JSON processing library.
  It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
  been in development since 2007.
  It is currently developed by a community of developers, as well as supported
  commercially by FasterXML.com.

  ## Licensing

  Jackson core and extension components may licensed under different licenses.
  To find the details that apply to this artifact see the accompanying LICENSE file.
  For more information, including possible other licensing options, contact
  FasterXML.com (http://fasterxml.com).

  ## Credits

  A list of contributors may be found from CREDITS file, which is included
  in some artifacts (usually source distributions); but is always available
  from the source code management (SCM) system project uses.

---

name: Jackson
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.12.7.1
libraries:
  - com.fasterxml.jackson.core: jackson-databind
notice: |
  # Jackson JSON processor

  Jackson is a high-performance, Free/Open Source JSON processing library.
  It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
  been in development since 2007.
  It is currently developed by a community of developers, as well as supported
  commercially by FasterXML.com.

  ## Licensing

  Jackson core and extension components may licensed under different licenses.
  To find the details that apply to this artifact see the accompanying LICENSE file.
  For more information, including possible other licensing options, contact
  FasterXML.com (http://fasterxml.com).

  ## Credits

  A list of contributors may be found from CREDITS file, which is included
  in some artifacts (usually source distributions); but is always available
  from the source code management (SCM) system project uses.

---

name: JavaBeans Activation Framework API JAR
license_category: binary
module: java-core
license_name: Eclipse Distribution License 1.0
version: 1.2.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jakarta.EDL1
libraries:
  - jakarta.activation: jakarta.activation-api

---

name: Jakarta XML Bind API
license_category: binary
module: java-core
license_name: Eclipse Distribution License 1.0
version: 2.3.2
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jakarta.EDL1
libraries:
  - jakarta.xml.bind: jakarta.xml.bind-api

---

name: Caffeine
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.8.0
libraries:
  - com.github.ben-manes.caffeine: caffeine

---

name: Error Prone Annotations
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.20.0
libraries:
  - com.google.errorprone: error_prone_annotations

---

name: Guava
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 32.0.1-jre
libraries:
  - com.google.guava: guava

---

name: Failureaccess
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.1
libraries:
  - com.google.guava: failureaccess

---

name: j2objc
license_category: binary
module: core
license_name: Apache License version 2.0
version: 1.3
libraries:
  - com.google.j2objc: j2objc-annotations

---

name: Guice
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.1.0
libraries:
  - com.google.inject: guice
  - com.google.inject.extensions: guice-multibindings
  - com.google.inject.extensions: guice-servlet
  - com.google.inject.extensions: guice-assistedinject
notices:
  - guice: |
      Google Guice - Core Library
      Copyright 2006-2016 Google, Inc.
  - guice-multibindings: |
      Google Guice - Extensions - MultiBindings
      Copyright 2006-2016 Google, Inc.
  - guice-servlet: |
      Google Guice - Extensions - Servlet
      Copyright 2006-2016 Google, Inc.
  - guice-assistedinject: |
      Google Guice - Extensions - AssistedInject
      Copyright 2006-2016 Google, Inc.

---

name: JsonPath
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.9.0
libraries:
  - com.jayway.jsonpath: json-path

---

name: CronScheduler
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 0.1
libraries:
  - io.timeandspace: cron-scheduler

---

name: LMAX Disruptor
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.3.6
libraries:
  - com.lmax: disruptor

---

name: LZF Compressor
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.4
libraries:
  - com.ning: compress-lzf
notices:
  - compress-lzf: |
      # Compress LZF

      This library contains efficient implementation of LZF compression format,
      as well as additional helper classes that build on JDK-provided gzip (deflat)
      codec.

      ## Licensing

      Library is licensed under Apache License 2.0, as per accompanying LICENSE file.

      ## Credit

      Library has been written by Tatu Saloranta (tatu.saloranta@iki.fi).
      It was started at Ning, inc., as an official Open Source process used by
      platform backend, but after initial versions has been developed outside of
      Ning by supporting community.

      Other contributors include:

      * Jon Hartlaub (first versions of streaming reader/writer; unit tests)
      * Cedrik Lime: parallel LZF implementation

      Various community members have contributed bug reports, and suggested minor
      fixes; these can be found from file "VERSION.txt" in SCM.

---

name: OpenCSV
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.6
libraries:
  - com.opencsv: opencsv

---

name: OkHttp
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.2
libraries:
  - com.squareup.okhttp: okhttp

---

name: Netty Reactive Streams
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.0.0
libraries:
  - com.typesafe.netty: netty-reactive-streams

---

name: Apache Commons BeanUtils
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.9.4
libraries:
  - commons-beanutils: commons-beanutils
notices:
  - commons-beanutils: |
      Apache Commons BeanUtils
      Copyright 2000-2016 The Apache Software Foundation

---

name: Apache Commons Codec
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.16.1
libraries:
  - commons-codec: commons-codec
notices:
  - commons-codec: |
      Apache Commons Codec
      Copyright 2002-2017 The Apache Software Foundation


      Copyright (C) 2002 Kevin Atkinson (kevina@gnu.org)

      ===============================================================================

      The content of package org.apache.commons.codec.language.bm has been translated
      from the original php source code available at http://stevemorse.org/phoneticinfo.htm
      with permission from the original authors.
      Original source copyright:
      Copyright (c) 2008 Alexander Beider & Stephen P. Morse.

---

name: Apache Commons Collections
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.2.2
libraries:
  - commons-collections: commons-collections
notices:
  - commons-collections: |
      Apache Commons Collections
      Copyright 2001-2015 The Apache Software Foundation

---

name: Apache Commons IO
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.11.0
libraries:
  - commons-io: commons-io
notices:
  - commons-io: |
      Apache Commons IO
      Copyright 2002-2021 The Apache Software Foundation

---

name: Apache Commons Lang
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.6
libraries:
  - commons-lang: commons-lang
notices:
  - commons-lang: |
      Apache Commons Lang
      Copyright 2001-2011 The Apache Software Foundation

---

name: Apache Commons Logging
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.1.1
libraries:
  - commons-logging: commons-logging
notices:
  - commons-logging: |
      // ------------------------------------------------------------------
      // NOTICE file corresponding to the section 4d of The Apache License,
      // Version 2.0, in this case for Commons Logging
      // ------------------------------------------------------------------

      Commons Logging
      Copyright 2001-2007 The Apache Software Foundation

      This product includes/uses software(s) developed by 'an unknown organization'
        - Unnamed - avalon-framework:avalon-framework:jar:4.1.3
        - Unnamed - log4j:log4j:jar:1.2.12
        - Unnamed - logkit:logkit:jar:1.0.1

---

name: Apache Commons Net
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.9.0
libraries:
  - commons-net: commons-net

---

name: IPAddress
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 5.3.4
libraries:
  - com.github.seancfoley: ipaddress

---

name: Apache Commons Collections
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.2
libraries:
  - org.apache.commons: commons-collections4
notices:
  - commons-collections4: |
      Apache Commons Collections
      Copyright 2001-2018 The Apache Software Foundation

---

name: Apache Commons Compress
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.26.0
libraries:
  - org.apache.commons: commons-compress
notices:
  - commons-compress: |
      Apache Commons Compress
      Copyright 2002-2018 The Apache Software Foundation

      The files in the package org.apache.commons.compress.archivers.sevenz
      were derived from the LZMA SDK, version 9.20 (C/ and CPP/7zip/),
      which has been placed in the public domain:

      "LZMA SDK is placed in the public domain." (http://www.7-zip.org/sdk.html)

---

name: Apache Commons Configuration
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.8.0
libraries:
  - org.apache.commons: commons-configuration2

---

name: Apache Commons DBCP
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.0.1
libraries:
  - org.apache.commons: commons-dbcp2
notices:
  - commons-dbcp2: |
      Apache Commons DBCP
      Copyright 2001-2014 The Apache Software Foundation

---

name: Apache Commons Lang
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.12.0
libraries:
  - org.apache.commons: commons-lang3
notices:
  - commons-lang3: |
      Apache Commons Lang
      Copyright 2001-2021 The Apache Software Foundation

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

---

name: Apache Commons Math
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.6.1
libraries:
  - org.apache.commons: commons-math3
notices:
  - commons-math3: |
      Apache Commons Math
      Copyright 2001-2016 The Apache Software Foundation

      This product includes software developed for Orekit by
      CS Systèmes d'Information (http://www.c-s.fr/)
      Copyright 2010-2012 CS Systèmes d'Information

---

name: Apache Commons Pool
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.2
libraries:
  - org.apache.commons: commons-pool2
notices:
  - commons-pool2: |
      Apache Commons Pool
      Copyright 2001-2014 The Apache Software Foundation

      The LinkedBlockingDeque implementation is based on an implementation written by
      Doug Lea with assistance from members of JCP JSR-166 Expert Group and released
      to the public domain, as explained at
      http://creativecommons.org/licenses/publicdomain

---

name: Apache Commons Text
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.10.0
libraries:
  - org.apache.commons: commons-text
notices:
  - commons-text: |
      Apache Commons Text
      Copyright 2014-2020 The Apache Software Foundation

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

---

name: Airline
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.8.4
libraries:
  - com.github.rvesse: airline
  - com.github.rvesse: airline-io
notices:
  - airline: |
      Copyright Notices
      =================

      Copyright 2013-18 Rob Vesse <rvesse@dotnetrdf.org>
      Copyright 2013 Fernando Hernandez <fernando@clarkparsia.com>
      Copyright 2013 Michael Grove <mike@clarkparsia.com>
      Copyright 2011 Dain Sundstrom <dain@iq80.com>
      Copyright 2010 Cedric Beust <cedric@beust.com>

---

name: DropWizard Metrics Core
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.2.22
libraries:
  - io.dropwizard.metrics: metrics-core

---

name: pac4j-oidc java security library
license_category: binary
module: extensions/druid-pac4j
license_name: Apache License version 2.0
version: 4.5.7
libraries:
  - org.pac4j: pac4j-oidc

---

name: pac4j-core java security library
license_category: binary
module: extensions/druid-pac4j
license_name: Apache License version 2.0
version: 4.5.7
libraries:
  - org.pac4j: pac4j-core

---


name: com.nimbusds lang-tag
license_category: binary
module: extensions/druid-pac4j
license_name: Apache License version 2.0
version: 1.7
libraries:
  - com.nimbusds: lang-tag

---

name: com.nimbusds nimbus-jose-jwt
license_category: binary
module: extensions/druid-pac4j
license_name: Apache License version 2.0
version: 8.22.1
libraries:
  - com.nimbusds: nimbus-jose-jwt

---

name: com.nimbusds content-type
license_category: binary
module: extensions/druid-pac4j
license_name: Apache License version 2.0
version: 2.1
libraries:
  - com.nimbusds: content-type

---

name: com.nimbusds oauth2-oidc-sdk
license_category: binary
module: extensions/druid-pac4j
license_name: Apache License version 2.0
version: 8.22
libraries:
  - com.nimbusds: oauth2-oidc-sdk

---

name: javax.activation activation
license_category: binary
module: extensions/druid-pac4j
license_name: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
version: 1.1.1
libraries:
  - javax.activation: activation

---

name: com.sun.mail javax.mail
license_category: binary
module: extensions/druid-pac4j
license_name: CDDL 1.1
version: 1.6.2
libraries:
  - com.sun.mail: javax.mail

---

name: kubernetes fabric java client
license_category: binary
module: extensions-contrib/kubernetes-overlord-extensions
license_name: Apache License version 2.0
version: 6.7.2
libraries:
  - io.fabric8: kubernetes-client

---

name: kubernetes official java client
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 19.0.0
libraries:
  - io.kubernetes: client-java
  - io.kubernetes: client-java-api
  - io.kubernetes: client-java-extended
  - io.kubernetes: client-java-api-fluent
  - io.kubernetes: client-java-proto

---

name: Swagger
version: 1.6.2
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - io.swagger: swagger-core
  - io.swagger: swagger-models

---

name: org.apache.commons commons-collections4
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 4.4
libraries:
  - org.apache.commons: commons-collections4

---

name: io.sundr builder-annotations
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 0.22.0
libraries:
  - io.sundr: builder-annotations

---

name: com.squareup.okio okio
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 1.17.2
libraries:
  - com.squareup.okio: okio

---

name: io.gsonfire gson-fire
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 1.8.5
libraries:
  - io.gsonfire: gson-fire

---

name: io.swagger swagger-annotations
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 1.6.11
libraries:
  - io.swagger: swagger-annotations

---

name: io.swagger swagger-annotations
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 1.6.2
libraries:
  - io.swagger: swagger-annotations

---

name: io.swagger swagger-annotations
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 2.8.6
libraries:
  - com.google.code.gson: gson

---


name: org.bitbucket.b_c jose4j
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 0.9.6
libraries:
  - org.bitbucket.b_c: jose4j

---

name: org.joda joda-convert
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 2.2.1
libraries:
  - org.joda: joda-convert


---

name: com.squareup.okhttp3 okhttp
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 4.12.0
libraries:
  - com.squareup.okhttp3: okhttp
  - com.squareup.okhttp3: logging-interceptor

---

name: com.squareup.okhttp3 okhttp logging-interceptor
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 4.11.0
libraries:
  - com.squareup.okhttp3: logging-interceptor

---

name: com.squareup.okio okio
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 3.6.0
libraries:
  - com.squareup.okio: okio
  - com.squareup.okio: okio-jvm

---

name: io.prometheus simpleclient
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 0.16.0
libraries:
  - io.prometheus: simpleclient
  - io.prometheus: simpleclient_common
  - io.prometheus: simpleclient_httpserver
  - io.prometheus: simpleclient_tracer_common
  - io.prometheus: simpleclient_tracer_otel
  - io.prometheus: simpleclient_tracer_otel_agent


---

name: org.yaml snakeyaml
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 2.2
libraries:
  - org.yaml: snakeyaml

---

name: com.flipkart.zjsonpatch zjsonpatch
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 0.4.14
libraries:
  - com.flipkart.zjsonpatch: zjsonpatch

---

name: org.bouncycastle bcprov-jdk18on
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: MIT License
version: "1.76"
libraries:
  - org.bouncycastle: bcprov-jdk18on
  - org.bouncycastle: bcprov-ext-jdk18on
  - org.bouncycastle: bcpkix-jdk18on
  - org.bouncycastle: bcutil-jdk18on
---


name: com.github.vladimir-bukhtoyarov bucket4j-core
license_category: binary
module: extensions/druid-kubernetes-extensions
license_name: Apache License version 2.0
version: 7.6.0
libraries:
  - com.github.vladimir-bukhtoyarov: bucket4j-core

---

name: Jetbrains Annotations
license_category: binary
module: extensions/druid-kubernetes-extensions
module: extensions/kubernetes-extensions
license_name: Apache License version 2.0
version: 13.0
libraries:
  - org.jetbrains: annotations


---

name: Jetbrains kotlin-stdlib
license_category: binary
module: extensions/kubernetes-extensions
license_name: Apache License version 2.0
version: 1.6.10
libraries:
  - org.jetbrains.kotlin: kotlin-stdlib

---

name: Jetbrains kotlin-stdlib common
license_category: binary
module: extensions/kubernetes-extensions
license_name: Apache License version 2.0
version: 1.9.10
libraries:
  - org.jetbrains.kotlin: kotlin-stdlib-common

---
name: Jetbrains  jdk7 jdk 8
license_category: binary
module: extensions/kubernetes-extensions
license_name: Apache License version 2.0
version: 1.8.21
libraries:
  - org.jetbrains.kotlin: kotlin-stdlib
  - org.jetbrains.kotlin: kotlin-stdlib-common
  - org.jetbrains.kotlin: kotlin-stdlib-jdk7
  - org.jetbrains.kotlin: kotlin-stdlib-jdk8

---

name: Netty
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.10.6.Final
libraries:
  - io.netty: netty
notices:
  - netty: |
      ==
                                  The Netty Project
                                  =================

      Please visit the Netty web site for more information:

        * http://netty.io/

      Copyright 2011 The Netty Project

      The Netty Project licenses this file to you under the Apache License,
      version 2.0 (the "License"); you may not use this file except in compliance
      with the License. You may obtain a copy of the License at:

      http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
      License for the specific language governing permissions and limitations
      under the License.

      Also, please refer to each LICENSE.<component>.txt file, which is located in
      the 'license' directory of the distribution file, for the license terms of the
      components that this product depends on.

      -------------------------------------------------------------------------------
      This product contains the extensions to Java Collections Framework which has
      been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:

        * LICENSE:
          * license/LICENSE.jsr166y.txt (Public Domain)
        * HOMEPAGE:
          * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
          * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/

      This product contains a modified version of Robert Harder's Public Domain
      Base64 Encoder and Decoder, which can be obtained at:

        * LICENSE:
          * license/LICENSE.base64.txt (Public Domain)
        * HOMEPAGE:
          * http://iharder.sourceforge.net/current/java/base64/

      This product contains a modified version of 'JZlib', a re-implementation of
      zlib in pure Java, which can be obtained at:

        * LICENSE:
          * license/LICENSE.jzlib.txt (BSD Style License)
        * HOMEPAGE:
          * http://www.jcraft.com/jzlib/

      This product contains a modified version of 'Webbit', a Java event based
      WebSocket and HTTP server:

        * LICENSE:
          * license/LICENSE.webbit.txt (BSD License)
        * HOMEPAGE:
          * https://github.com/joewalnes/webbit

      This product optionally depends on 'Protocol Buffers', Google's data
      interchange format, which can be obtained at:

        * LICENSE:
          * license/LICENSE.protobuf.txt (New BSD License)
        * HOMEPAGE:
          * http://code.google.com/p/protobuf/

      This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
      a temporary self-signed X.509 certificate when the JVM does not provide the
      equivalent functionality.  It can be obtained at:

        * LICENSE:
          * license/LICENSE.bouncycastle.txt (MIT License)
        * HOMEPAGE:
          * http://www.bouncycastle.org/

      This product optionally depends on 'SLF4J', a simple logging facade for Java,
      which can be obtained at:

        * LICENSE:
          * license/LICENSE.slf4j.txt (MIT License)
        * HOMEPAGE:
          * http://www.slf4j.org/

      This product optionally depends on 'Apache Commons Logging', a logging
      framework, which can be obtained at:

        * LICENSE:
          * license/LICENSE.commons-logging.txt (Apache License 2.0)
        * HOMEPAGE:
          * http://commons.apache.org/logging/

      This product optionally depends on 'Apache Log4J', a logging framework,
      which can be obtained at:

        * LICENSE:
          * license/LICENSE.log4j.txt (Apache License 2.0)
        * HOMEPAGE:
          * http://logging.apache.org/log4j/

      This product optionally depends on 'JBoss Logging', a logging framework,
      which can be obtained at:

        * LICENSE:
          * license/LICENSE.jboss-logging.txt (GNU LGPL 2.1)
        * HOMEPAGE:
          * http://anonsvn.jboss.org/repos/common/common-logging-spi/

      This product optionally depends on 'Apache Felix', an open source OSGi
      framework implementation, which can be obtained at:

        * LICENSE:
          * license/LICENSE.felix.txt (Apache License 2.0)
        * HOMEPAGE:
          * http://felix.apache.org/

---

name: Netty
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.1.107.Final
libraries:
  - io.netty: netty-buffer
  - io.netty: netty-codec
  - io.netty: netty-codec-dns
  - io.netty: netty-codec-http
  - io.netty: netty-codec-socks
  - io.netty: netty-common
  - io.netty: netty-handler
  - io.netty: netty-handler-proxy
  - io.netty: netty-resolver
  - io.netty: netty-resolver-dns
  - io.netty: netty-transport
  - io.netty: netty-transport-classes-epoll
  - io.netty: netty-transport-native-epoll
  - io.netty: netty-transport-native-unix-common
  - io.netty: netty-codec-http2
  - io.netty: netty-resolver-dns-classes-macos
  - io.netty: netty-transport-classes-kqueue
  - io.netty: netty-resolver-dns-native-macos
  - io.netty: netty-transport-native-kqueue
notice: |
  ==
                              The Netty Project
                              =================

  Please visit the Netty web site for more information:

    * http://netty.io/

  Copyright 2014 The Netty Project

  The Netty Project licenses this file to you under the Apache License,
  version 2.0 (the "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at:

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  License for the specific language governing permissions and limitations
  under the License.

  Also, please refer to each LICENSE.<component>.txt file, which is located in
  the 'license' directory of the distribution file, for the license terms of the
  components that this product depends on.

  -------------------------------------------------------------------------------
  This product contains the extensions to Java Collections Framework which has
  been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:

    * LICENSE:
      * license/LICENSE.jsr166y.txt (Public Domain)
    * HOMEPAGE:
      * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
      * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/

  This product contains a modified version of Robert Harder's Public Domain
  Base64 Encoder and Decoder, which can be obtained at:

    * LICENSE:
      * license/LICENSE.base64.txt (Public Domain)
    * HOMEPAGE:
      * http://iharder.sourceforge.net/current/java/base64/

  This product contains a modified portion of 'Webbit', an event based
  WebSocket and HTTP server, which can be obtained at:

    * LICENSE:
      * license/LICENSE.webbit.txt (BSD License)
    * HOMEPAGE:
      * https://github.com/joewalnes/webbit

  This product contains a modified portion of 'SLF4J', a simple logging
  facade for Java, which can be obtained at:

    * LICENSE:
      * license/LICENSE.slf4j.txt (MIT License)
    * HOMEPAGE:
      * http://www.slf4j.org/

  This product contains a modified portion of 'Apache Harmony', an open source
  Java SE, which can be obtained at:

    * NOTICE:
      * license/NOTICE.harmony.txt
    * LICENSE:
      * license/LICENSE.harmony.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://archive.apache.org/dist/harmony/

  This product contains a modified portion of 'jbzip2', a Java bzip2 compression
  and decompression library written by Matthew J. Francis. It can be obtained at:

    * LICENSE:
      * license/LICENSE.jbzip2.txt (MIT License)
    * HOMEPAGE:
      * https://code.google.com/p/jbzip2/

  This product contains a modified portion of 'libdivsufsort', a C API library to construct
  the suffix array and the Burrows-Wheeler transformed string for any input string of
  a constant-size alphabet written by Yuta Mori. It can be obtained at:

    * LICENSE:
      * license/LICENSE.libdivsufsort.txt (MIT License)
    * HOMEPAGE:
      * https://github.com/y-256/libdivsufsort

  This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
   which can be obtained at:

    * LICENSE:
      * license/LICENSE.jctools.txt (ASL2 License)
    * HOMEPAGE:
      * https://github.com/JCTools/JCTools

  This product optionally depends on 'JZlib', a re-implementation of zlib in
  pure Java, which can be obtained at:

    * LICENSE:
      * license/LICENSE.jzlib.txt (BSD style License)
    * HOMEPAGE:
      * http://www.jcraft.com/jzlib/

  This product optionally depends on 'Compress-LZF', a Java library for encoding and
  decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:

    * LICENSE:
      * license/LICENSE.compress-lzf.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/ning/compress

  This product optionally depends on 'lz4', a LZ4 Java compression
  and decompression library written by Adrien Grand. It can be obtained at:

    * LICENSE:
      * license/LICENSE.lz4.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/jpountz/lz4-java

  This product optionally depends on 'lzma-java', a LZMA Java compression
  and decompression library, which can be obtained at:

    * LICENSE:
      * license/LICENSE.lzma-java.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/jponge/lzma-java

  This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
  and decompression library written by William Kinney. It can be obtained at:

    * LICENSE:
      * license/LICENSE.jfastlz.txt (MIT License)
    * HOMEPAGE:
      * https://code.google.com/p/jfastlz/

  This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
  interchange format, which can be obtained at:

    * LICENSE:
      * license/LICENSE.protobuf.txt (New BSD License)
    * HOMEPAGE:
      * https://github.com/google/protobuf

  This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
  a temporary self-signed X.509 certificate when the JVM does not provide the
  equivalent functionality.  It can be obtained at:

    * LICENSE:
      * license/LICENSE.bouncycastle.txt (MIT License)
    * HOMEPAGE:
      * http://www.bouncycastle.org/

  This product optionally depends on 'Snappy', a compression library produced
  by Google Inc, which can be obtained at:

    * LICENSE:
      * license/LICENSE.snappy.txt (New BSD License)
    * HOMEPAGE:
      * https://github.com/google/snappy

  This product optionally depends on 'JBoss Marshalling', an alternative Java
  serialization API, which can be obtained at:

    * LICENSE:
      * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
    * HOMEPAGE:
      * http://www.jboss.org/jbossmarshalling

  This product optionally depends on 'Caliper', Google's micro-
  benchmarking framework, which can be obtained at:

    * LICENSE:
      * license/LICENSE.caliper.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/google/caliper

  This product optionally depends on 'Apache Commons Logging', a logging
  framework, which can be obtained at:

    * LICENSE:
      * license/LICENSE.commons-logging.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://commons.apache.org/logging/

  This product optionally depends on 'Apache Log4J', a logging framework, which
  can be obtained at:

    * LICENSE:
      * license/LICENSE.log4j.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://logging.apache.org/log4j/

  This product optionally depends on 'Aalto XML', an ultra-high performance
  non-blocking XML processor, which can be obtained at:

    * LICENSE:
      * license/LICENSE.aalto-xml.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://wiki.fasterxml.com/AaltoHome

  This product contains a modified version of 'HPACK', a Java implementation of
  the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:

    * LICENSE:
      * license/LICENSE.hpack.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/twitter/hpack

  This product contains a modified portion of 'Apache Commons Lang', a Java library
  provides utilities for the java.lang API, which can be obtained at:

    * LICENSE:
      * license/LICENSE.commons-lang.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://commons.apache.org/proper/commons-lang/


  This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.

    * LICENSE:
      * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/takari/maven-wrapper

---

name: fastutil
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 8.5.4
libraries:
  - it.unimi.dsi: fastutil
  - it.unimi.dsi: fastutil-core
  - it.unimi.dsi: fastutil-extra

---

name: Jakarta Dependency Injection
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.3
libraries:
  - jakarta.inject: jakarta.inject-api

---

name: Javax Inject
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1
libraries:
  - javax.inject: javax.inject

---

name: Bean Validation API
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.0.2
libraries:
  - jakarta.validation: jakarta.validation-api

---

name: Joda-Time
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.12.5
libraries:
  - joda-time: joda-time
notices:
  - joda-time: |
      =============================================================================
      = NOTICE file corresponding to section 4d of the Apache License Version 2.0 =
      =============================================================================
      This product includes software developed by
      Joda.org (http://www.joda.org/).

---

name: Aggregate Designer Algorithm
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 6.0
libraries:
  - net.hydromatic: aggdesigner-algorithm
notices:
  - aggdesigner-algorithm: |
      Aggregate Designer

      Copyright 2006 - 2013 Pentaho Corporation.  All rights reserved.
      Copyright 2000-2005, 2014-2016 Julian Hyde

---

name: Java Native Access (JNA)
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 5.13.0
libraries:
  - net.java.dev.jna: jna

---

name: JSON Small and Fast Parser
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.4.11
libraries:
  - net.minidev: json-smart

---

name: aws-elasticache-cluster-client-memcached-for-java
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.2.0
libraries:
  - com.amazonaws: elasticache-java-cluster-client

---

name: jackson-jq
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 0.0.10
libraries:
  - net.thisptr: jackson-jq

---

name: Apache Calcite
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.35.0
libraries:
  - org.apache.calcite: calcite-core
  - org.apache.calcite: calcite-linq4j
notices:
  - calcite-core: |
      Calcite Core
      Copyright 2012-2019 The Apache Software Foundation
  - calcite-linq4j: |
      Calcite Linq4j
      Copyright 2012-2019 The Apache Software Foundation

---

name: Apache Calcite Avatica
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.23.0
libraries:
  - org.apache.calcite.avatica: avatica-core
  - org.apache.calcite.avatica: avatica-metrics
  - org.apache.calcite.avatica: avatica-server
notices:
  - avatica-core: |
      Apache Calcite Avatica
      Copyright 2012-2020 The Apache Software Foundation
  - avatica-metrics: |
      Apache Calcite Avatica Metrics
      Copyright 2012-2020 The Apache Software Foundation
  - avatica-server: |
      Apache Calcite Avatica Server
      Copyright 2012-2020 The Apache Software Foundation
---

name: Apache Curator
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 5.5.0
libraries:
  - org.apache.curator: curator-client
  - org.apache.curator: curator-framework
  - org.apache.curator: curator-recipes
  - org.apache.curator: curator-x-discovery
notices:
  - curator-client: |
      Curator Client
      Copyright 2011-2022 The Apache Software Foundation
  - curator-framework: |
      Curator Framework
      Copyright 2011-2022 The Apache Software Foundation
  - curator-recipes: |
      Curator Recipes
      Copyright 2011-2022 The Apache Software Foundation
  - curator-x-discovery: |
      Curator Service Discovery
      Copyright 2011-2022 The Apache Software Foundation

---

name: Apache Derby
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 10.14.2.0
libraries:
  - org.apache.derby: derby
  - org.apache.derby: derbyclient
  - org.apache.derby: derbynet
notice: |
  =========================================================================
  ==  NOTICE file corresponding to section 4(d) of the Apache License,
  ==  Version 2.0, in this case for the Apache Derby distribution.
  ==
  ==  DO NOT EDIT THIS FILE DIRECTLY. IT IS GENERATED
  ==  BY THE buildnotice TARGET IN THE TOP LEVEL build.xml FILE.
  ==
  =========================================================================

  Apache Derby
  Copyright 2004-2018 The Apache Software Foundation

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


  =========================================================================

  Portions of Derby were originally developed by
  International Business Machines Corporation and are
  licensed to the Apache Software Foundation under the
  "Software Grant and Corporate Contribution License Agreement",
  informally known as the "Derby CLA".
  The following copyright notice(s) were affixed to portions of the code
  with which this file is now or was at one time distributed
  and are placed here unaltered.

  (C) Copyright 1997,2004 International Business Machines Corporation.  All rights reserved.

  (C) Copyright IBM Corp. 2003.


  =========================================================================


  The portion of the functionTests under 'nist' was originally
  developed by the National Institute of Standards and Technology (NIST),
  an agency of the United States Department of Commerce, and adapted by
  International Business Machines Corporation in accordance with the NIST
  Software Acknowledgment and Redistribution document at
  http://www.itl.nist.gov/div897/ctg/sql_form.htm


  =========================================================================


  The Derby build relies on source files supplied by the Apache Felix
  project. The following notice covers the Felix files:

    Apache Felix Main
    Copyright 2008 The Apache Software Foundation


    I. Included Software

    This product includes software developed at
    The Apache Software Foundation (http://www.apache.org/).
    Licensed under the Apache License 2.0.

    This product includes software developed at
    The OSGi Alliance (http://www.osgi.org/).
    Copyright (c) OSGi Alliance (2000, 2007).
    Licensed under the Apache License 2.0.

    This product includes software from http://kxml.sourceforge.net.
    Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany.
    Licensed under BSD License.

    II. Used Software

    This product uses software developed at
    The OSGi Alliance (http://www.osgi.org/).
    Copyright (c) OSGi Alliance (2000, 2007).
    Licensed under the Apache License 2.0.


    III. License Summary
    - Apache License 2.0
    - BSD License

---

name: Apache HttpClient
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.5.13
libraries:
  - org.apache.httpcomponents: httpclient
notices:
  - httpclient: |
      Apache HttpClient
      Copyright 1999-2017 The Apache Software Foundation

---

name: Apache HttpCore
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.4.11
libraries:
  - org.apache.httpcomponents: httpcore
notices:
  - httpcore: |
      Apache HttpCore
      Copyright 2005-2019 The Apache Software Foundation

---

name: Apache Log4j
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.22.1
libraries:
  - org.apache.logging.log4j: log4j-1.2-api
  - org.apache.logging.log4j: log4j-api
  - org.apache.logging.log4j: log4j-core
  - org.apache.logging.log4j: log4j-jul
  - org.apache.logging.log4j: log4j-slf4j-impl
notices:
  - log4j-1.2-api: |
      Apache Log4j 1.x Compatibility API
      Copyright 1999-2015 Apache Software Foundation
  - log4j-api: |
      Apache Log4j API
      Copyright 1999-2015 Apache Software Foundation
  - log4j-core: |
      Apache Log4j Core
      Copyright 1999-2012 Apache Software Foundation

      ResolverUtil.java
      Copyright 2005-2006 Tim Fennell

      TypeUtil.java
      Copyright 2002-2012 Ramnivas Laddad, Juergen Hoeller, Chris Beams
  - log4j-jul: |
      Apache Log4j JUL Adapter
      Copyright 1999-2015 Apache Software Foundation
  - log4j-slf4j-impl: |
      Apache Log4j SLF4J Binding
      Copyright 1999-2015 Apache Software Foundation

---

name: Apache Maven
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.1.1
libraries:
  - org.apache.maven: maven-aether-provider
  - org.apache.maven: maven-model
  - org.apache.maven: maven-model-builder
  - org.apache.maven: maven-repository-metadata
  - org.apache.maven: maven-settings
  - org.apache.maven: maven-settings-builder
notices:
  - maven-aether-provider: |
      Maven Aether Provider
      Copyright 2001-2013 The Apache Software Foundation
  - maven-model: |
      Maven Model
      Copyright 2001-2013 The Apache Software Foundation
  - maven-model-builder: |
      Maven Model Builder
      Copyright 2001-2013 The Apache Software Foundation
  - maven-repository-metadata: |
      Maven Repository Metadata Model
      Copyright 2001-2013 The Apache Software Foundation
  - maven-settings: |
      Maven Settings
      Copyright 2001-2013 The Apache Software Foundation
  - maven-settings-builder: |
      Maven Settings Builder
      Copyright 2001-2013 The Apache Software Foundation
---

name: Apache Maven Artifact
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.6.0
libraries:
  - org.apache.maven: maven-artifact
notices:
  - maven-artifact: |
      Maven Artifact
      Copyright 2001-2018 The Apache Software Foundation
---

name: Apache Maven Wagon API
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.4
libraries:
  - org.apache.maven.wagon: wagon-provider-api
notices:
  - wagon-provider-api: |
      Apache Maven Wagon :: API
      Copyright 2003-2013 The Apache Software Foundation
---

name: Apache Yetus Audience Annotations Component
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 0.5.0
libraries:
  - org.apache.yetus: audience-annotations
notices:
  - audience-annotations: |
      Apache Yetus - Audience Annotations
      Copyright 2015-2017 The Apache Software Foundation
---

name: "audience-annotations"
license_category: binary
module: core
license_name: Apache License version 2.0
version: 0.12.0
libraries:
  - org.apache.yetus: audience-annotations
notices:
  - audience-annotations: |
      Apache Yetus
      Copyright 2008-2022 The Apache Software Foundation
---

name: Apache Zookeeper
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.8.3
libraries:
  - org.apache.zookeeper: zookeeper
  - org.apache.zookeeper: zookeeper-jute
notices:
  - zookeeper: |
      Apache ZooKeeper
      Copyright 2009-2023 The Apache Software Foundation

---

name: AsyncHttpClient asynchttpclient
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.5.3
libraries:
  - org.asynchttpclient: async-http-client
  - org.asynchttpclient: async-http-client-netty-utils

---

name: components from Jackson
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.9.13
libraries:
  - org.codehaus.jackson: jackson-core-asl
  - org.codehaus.jackson: jackson-mapper-asl
notice: |
  This product currently only contains code developed by authors
  of specific components, as identified by the source code files;
  if such notes are missing files have been created by
  Tatu Saloranta.

  For additional credits (generally to people who reported problems)
  see CREDITS file.

---

name: Plexus Interpolation API
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.19
libraries:
  - org.codehaus.plexus: plexus-interpolation

---

name: Plexus Common Utilities
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.0.24
libraries:
  - org.codehaus.plexus: plexus-utils
notices:
  - plexus-utils: |
      This product includes software developed by the Indiana University
        Extreme! Lab (http://www.extreme.indiana.edu/).

      This product includes software developed by
      ThoughtWorks (http://www.thoughtworks.com).

      This product includes software developed by
      javolution (http://javolution.org/).

      This product includes software developed by
      Rome (https://rome.dev.java.net/).
---

name: Jetty
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 9.4.54.v20240208
libraries:
  - org.eclipse.jetty: jetty-client
  - org.eclipse.jetty: jetty-continuation
  - org.eclipse.jetty: jetty-http
  - org.eclipse.jetty: jetty-io
  - org.eclipse.jetty: jetty-proxy
  - org.eclipse.jetty: jetty-rewrite
  - org.eclipse.jetty: jetty-security
  - org.eclipse.jetty: jetty-server
  - org.eclipse.jetty: jetty-servlet
  - org.eclipse.jetty: jetty-servlets
  - org.eclipse.jetty: jetty-util
  - org.eclipse.jetty: jetty-util-ajax
  - org.eclipse.jetty: jetty-xml
  - org.eclipse.jetty: jetty-webapp
notice: |
  ==============================================================
   Jetty Web Container
   Copyright 1995-2018 Mort Bay Consulting Pty Ltd.
  ==============================================================

  The Jetty Web Container is Copyright Mort Bay Consulting Pty Ltd
  unless otherwise noted.

  Jetty is dual licensed under both

    * The Apache 2.0 License
      http://www.apache.org/licenses/LICENSE-2.0.html

        and

    * The Eclipse Public 1.0 License
      http://www.eclipse.org/legal/epl-v10.html

  Jetty may be distributed under either license.

  ------
  Eclipse

  The following artifacts are EPL.
   * org.eclipse.jetty.orbit:org.eclipse.jdt.core

  The following artifacts are EPL and ASL2.
   * org.eclipse.jetty.orbit:javax.security.auth.message


  The following artifacts are EPL and CDDL 1.0.
   * org.eclipse.jetty.orbit:javax.mail.glassfish


  ------
  Oracle

  The following artifacts are CDDL + GPLv2 with classpath exception.
  https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html

   * javax.servlet:javax.servlet-api
   * javax.annotation:javax.annotation-api
   * javax.transaction:javax.transaction-api
   * javax.websocket:javax.websocket-api

  ------
  Oracle OpenJDK

  If ALPN is used to negotiate HTTP/2 connections, then the following
  artifacts may be included in the distribution or downloaded when ALPN
  module is selected.

   * java.sun.security.ssl

  These artifacts replace/modify OpenJDK classes.  The modififications
  are hosted at github and both modified and original are under GPL v2 with
  classpath exceptions.
  http://openjdk.java.net/legal/gplv2+ce.html


  ------
  OW2

  The following artifacts are licensed by the OW2 Foundation according to the
  terms of http://asm.ow2.org/license.html

  org.ow2.asm:asm-commons
  org.ow2.asm:asm


  ------
  Apache

  The following artifacts are ASL2 licensed.

  org.apache.taglibs:taglibs-standard-spec
  org.apache.taglibs:taglibs-standard-impl


  ------
  MortBay

  The following artifacts are ASL2 licensed.  Based on selected classes from
  following Apache Tomcat jars, all ASL2 licensed.

  org.mortbay.jasper:apache-jsp
    org.apache.tomcat:tomcat-jasper
    org.apache.tomcat:tomcat-juli
    org.apache.tomcat:tomcat-jsp-api
    org.apache.tomcat:tomcat-el-api
    org.apache.tomcat:tomcat-jasper-el
    org.apache.tomcat:tomcat-api
    org.apache.tomcat:tomcat-util-scan
    org.apache.tomcat:tomcat-util

  org.mortbay.jasper:apache-el
    org.apache.tomcat:tomcat-jasper-el
    org.apache.tomcat:tomcat-el-api


  ------
  Mortbay

  The following artifacts are CDDL + GPLv2 with classpath exception.

  https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html

  org.eclipse.jetty.toolchain:jetty-schemas

  ------
  Assorted

  The UnixCrypt.java code implements the one way cryptography used by
  Unix systems for simple password protection.  Copyright 1996 Aki Yoshida,
  modified April 2001  by Iris Van den Broeke, Daniel Deville.
  Permission to use, copy, modify and distribute UnixCrypt
  for non-commercial or commercial purposes and without fee is
  granted provided that the copyright notice appears in all copies.

---

name: Kerby
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.1
libraries:
  - org.apache.kerby: kerb-admin
  - org.apache.kerby: kerb-client
  - org.apache.kerby: kerb-common
  - org.apache.kerby: kerb-core
  - org.apache.kerby: kerb-crypto
  - org.apache.kerby: kerb-identity
  - org.apache.kerby: kerb-server
  - org.apache.kerby: kerb-simplekdc
  - org.apache.kerby: kerb-util
  - org.apache.kerby: kerby-asn1
  - org.apache.kerby: kerby-config
  - org.apache.kerby: kerby-pkix
  - org.apache.kerby: kerby-util
  - org.apache.kerby: kerby-xdr
  - org.apache.kerby: token-provider

---

name: SIGAR
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.6.5.132
libraries:
  - org.hyperic: sigar
notices:
  - sigar: |
      Copyright (c) 2004-2011 VMware, Inc.

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

      ADDITIONAL LICENSE INFORMATION:

      Hyperic SIGAR includes some third-party open source components
      in its distribution. The list below identifies the community or
      organization and links to their appropriate license terms.

      The Hyperic team would like to thank all the communities
      of the projects listed below for their contributions.

      ----------------------------------------------------------
      Components under the Apache License 2.0:
      ----------------------------------------------------------

      The following components are included without modification:

      - log4j -
      Information: http://logging.apache.org/
      License: http://www.apache.org/licenses/LICENSE-2.0

      The following components are included with modification:

      - cpptasks -
      Information: http://ant-contrib.sourceforge.net/
      License: http://www.apache.org/licenses/LICENSE-2.0

      - (portions of) APR -
      Information: http://apr.apache.org/
      License: http://www.apache.org/licenses/LICENSE-2.0

      ----------------------------------------------------------
      Components under BSD/MIT Style Licenses:
      ----------------------------------------------------------

      The following components are included with modification:

      - solaris get_mib2 -
      Information: ftp://vic.cc.purdue.edu/pub/tools/unix/solaris/get_mib2/
      License: within src/os/solaris/get_mib2.[ch]

      Copyright 1995 Purdue Research Foundation, West Lafayette, Indiana
      47907.  All rights reserved.

      Written by Victor A. Abell <abe@cc.purdue.edu>

      This software is not subject to any license of the American Telephone
      and Telegraph Company or the Regents of the University of California.

      Permission is granted to anyone to use this software for any purpose on
      any computer system, and to alter it and redistribute it freely, subject
      to the following restrictions:

      1. Neither Victor A  Abell nor Purdue University are responsible for
         any consequences of the use of this software.

      2. The origin of this software must not be misrepresented, either by
         explicit claim or by omission.  Credit to Victor A. Abell and Purdue
         University must appear in documentation and sources.

      3. Altered versions must be plainly marked as such, and must not be
         misrepresented as being the original software.

      4. This notice may not be removed or altered.

      - getline by Chris Thewalt -
      Information: http://tinyurl.com/r438r
      License: within src/sigar_getline.c

      Copyright (C) 1991, 1992 by Chris Thewalt (thewalt@ce.berkeley.edu)

      Permission to use, copy, modify, and distribute this software
      for any purpose and without fee is hereby granted, provided
      that the above copyright notices appear in all copies and that both the
      copyright notice and this permission notice appear in supporting
      documentation.  This software is provided "as is" without express or
      implied warranty.

      - PrintfFormat.java -
      Information: http://java.sun.com/developer/technicalArticles/Programming/sprintf/PrintfFormat.java
      License: within bindings/java/src/org/hyperic/sigar/util/PrintfFormat.java

      (c) 2000 Sun Microsystems, Inc.
      ALL RIGHTS RESERVED

      License Grant-

      Permission to use, copy, modify, and distribute this Software and its
      documentation for NON-COMMERCIAL or COMMERCIAL purposes and without fee is
      hereby granted.

      This Software is provided "AS IS".  All express warranties, including any
      implied warranty of merchantability, satisfactory quality, fitness for a
      particular purpose, or non-infringement, are disclaimed, except to the extent
      that such disclaimers are held to be legally invalid.

      You acknowledge that Software is not designed, licensed or intended for use in
      the design, construction, operation or maintenance of any nuclear facility
      ("High Risk Activities").  Sun disclaims any express or implied warranty of
      fitness for such uses.

      Please refer to the file http://www.sun.com/policies/trademarks/ for further
      important trademark information and to
      http://java.sun.com/nav/business/index.html for further important licensing
      information for the Java Technology.

---

name: OSHI
license_category: binary
module: java-core
license_name: MIT License
version: 6.4.4
libraries:
  - com.github.oshi: oshi-core
license_file_path: licenses/bin/oshi.MIT

---

name: JBoss Logging 3
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.2.1.Final
libraries:
  - org.jboss.logging: jboss-logging

---

name: JDBI
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.63.1
libraries:
  - org.jdbi: jdbi
notices:
  - jdbi: |
      Java ClassMate library was originally written by Tatu Saloranta (tatu.saloranta@iki.fi)

      Other developers who have contributed code are:

      * Brian Langel
---

name: LZ4 Java
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.8.0
libraries:
  - org.lz4: lz4-java

---

name: MapDB
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.8
libraries:
  - org.mapdb: mapdb

---

name: Objenesis
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 3.3
libraries:
  - org.objenesis: objenesis

---

name: Resilience4j
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.3.1
libraries:
  - io.github.resilience4j: resilience4j-core
  - io.github.resilience4j: resilience4j-bulkhead

---

name: RoaringBitmap
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 0.9.49
libraries:
  - org.roaringbitmap: RoaringBitmap
  - org.roaringbitmap: shims

---

name: vavr
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 0.10.2
libraries:
  - io.vavr: vavr
  - io.vavr: vavr-match

---

name: Config Magic
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 0.9
libraries:
  - org.skife.config: config-magic

---

name: Ion Java
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.0.2
libraries:
  - software.amazon.ion: ion-java
notices:
  - ion-java: |
      Amazon Ion Java
      Copyright 2007-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.

---

name: Apache Hadoop
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 3.3.6
libraries:
  - org.apache.hadoop: hadoop-auth
  - org.apache.hadoop: hadoop-common

---

name: Gson
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 2.10.1
libraries:
  - com.google.code.gson: gson

---

name: Apache Commons Codec
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 1.4
libraries:
  - commons-codec: commons-codec
notices:
  - commons-codec: |
      Apache Commons Codec
      Copyright 2002-2009 The Apache Software Foundation

      --------------------------------------------------------------------------------
      Copyright (C) 2002 Kevin Atkinson (kevina@gnu.org). Verbatim copying
      and distribution of this entire article is permitted in any medium,
      provided this notice is preserved.
      --------------------------------------------------------------------------------

---

name: Apache Commons Digester
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 1.8
libraries:
  - commons-digester: commons-digester
notices:
  - commons-digester: |
      Apache Jakarta Commons Digester
      Copyright 2001-2006 The Apache Software Foundation

---

name: Apache Commons IO
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 2.4
libraries:
  - commons-io: commons-io
notices:
  - commons-io: |
      Apache Commons IO
      Copyright 2002-2012 The Apache Software Foundation

---

name: Apache Commons Logging
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 1.1.3
libraries:
  - commons-logging: commons-logging
notices:
  - commons-logging: |
      Apache Commons Logging
      Copyright 2003-2013 The Apache Software Foundation

---

name: Apache Commons Net
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 3.9
libraries:
  - commons-net: commons-net
notices:
  - commons-net: |
      Apache Commons Net
      Copyright 2001-2012 The Apache Software Foundation

---

name: Apache Commons Math
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 3.1.1
libraries:
  - org.apache.commons: commons-math3
notices:
  - commons-math3: |
      Apache Commons Math
      Copyright 2001-2012 The Apache Software Foundation

      ===============================================================================

      The BracketFinder (package org.apache.commons.math3.optimization.univariate)
      and PowellOptimizer (package org.apache.commons.math3.optimization.general)
      classes are based on the Python code in module "optimize.py" (version 0.5)
      developed by Travis E. Oliphant for the SciPy library (http://www.scipy.org/)
      Copyright © 2003-2009 SciPy Developers.
      ===============================================================================

      The LinearConstraint, LinearObjectiveFunction, LinearOptimizer,
      SimplexSolver and SimplexTableau classes in package
      org.apache.commons.math3.optimization.linear include software developed by
      Benjamin McCann (http://www.benmccann.com) and distributed with
      the following copyright: Copyright 2009 Google Inc.
      ===============================================================================

      This product includes software developed by the
      University of Chicago, as Operator of Argonne National
      Laboratory.
      The LevenbergMarquardtOptimizer class in package
      org.apache.commons.math3.optimization.general includes software
      translated from the lmder, lmpar and qrsolv Fortran routines
      from the Minpack package
      Minpack Copyright Notice (1999) University of Chicago.  All rights reserved
      ===============================================================================

      The GraggBulirschStoerIntegrator class in package
      org.apache.commons.math3.ode.nonstiff includes software translated
      from the odex Fortran routine developed by E. Hairer and G. Wanner.
      Original source copyright:
      Copyright (c) 2004, Ernst Hairer
      ===============================================================================

      The MersenneTwister class in package org.apache.commons.math3.random
      includes software translated from the 2002-01-26 version of
      the Mersenne-Twister generator written in C by Makoto Matsumoto and Takuji
      Nishimura. Original source copyright:
      Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
      All rights reserved
      ===============================================================================

      The HermiteInterpolator class and its corresponding test have been imported from
      the orekit library distributed under the terms of the Apache 2 licence. Original
      source copyright:
      Copyright 2010-2012 CS Systèmes d'Information
      ===============================================================================

      The creation of the package "o.a.c.m.analysis.integration.gauss" was inspired
      by an original code donated by Sébastien Brisard.
      ===============================================================================


      The complete text of licenses and disclaimers associated with the the original
      sources enumerated above at the time of code translation are in the LICENSE.txt
      file.
---

name: JSON Small and Fast Parser
license_category: binary
module: druid-pac4j
license_name: Apache License version 2.0
version: 2.4.11
libraries:
  - net.minidev: json-smart
---

name: JSON Small and Fast Parser
license_category: binary
module: druid-pac4j
license_name: Apache License version 2.0
version: 2.4.11
libraries:
  - net.minidev: accessors-smart
---
name: JSON Small and Fast Parser
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 2.4.11
libraries:
  - net.minidev: json-smart

---
name: JSON simple
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.1.1
libraries:
  - com.googlecode.json-simple: json-simple
notices:
  - json-simple: |
      JSON Simple
      Copyright 2012-2019 The Apache Software Foundation

---
name: Immutables
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.8.8
libraries:
  - org.immutables: value-annotations
notices:
  - value-annotations: |
      Value Annotations
      Copyright 2012-2019 The Apache Software Foundation

---

name: Guardian API
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.1.2
libraries:
  - org.apiguardian: apiguardian-api
notices:
  - apiguardian-api: |
      API Guardian APIs
      Copyright 2012-2019 The Apache Software Foundation

---

name: Proj4j
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.2.2
libraries:
  - org.locationtech.proj4j: proj4j
notices:
  - proj4j: |
      Java library for converting coordinates between different geospatial coordinate reference systems
      Copyright 2012-2019 The Apache Software Foundation

---

name: JTS
license_category: binary
module: java-core
license_name: Eclipse Public License 2.0
version: 1.19.0
libraries:
  - org.locationtech.jts: jts-core
  - org.locationtech.jts.io: jts-io-common
notices:
  - jts-core: |
      The JTS Topology Suite is a Java library for creating and manipulating vector geometry.
      Eclipse Distribution License 1.0 / Eclipse Public License 2.0
  - jts-io-common: |
      Eclipse Distribution License 1.0 / Eclipse Public License 2.0
---


name: Apache Directory
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 1.0.3
libraries:
  - org.apache.directory.api: api-util
notices:
  - api-util: |
      Apache Directory LDAP API Utilities
      Copyright 2003-2013 The Apache Software Foundation

---


name: components from Jackson
license_category: binary
module: hadoop-client
license_name: Apache License version 2.0
version: 1.9.13
libraries:
  - org.codehaus.jackson: jackson-jaxrs
  - org.codehaus.jackson: jackson-xc
notice: |
  This product currently only contains code developed by authors
  of specific components, as identified by the source code files;
  if such notes are missing files have been created by
  Tatu Saloranta.

  For additional credits (generally to people who reported problems)
  see CREDITS file.


---

name: reload4j
license_category: binary
module: hadoop-common
license_name: Apache License version 2.0
version: 1.2.22
libraries:
  - ch.qos.reload4j: reload4j
notices:
  - reload4j: |
      Apache log4j
      Copyright 2010 The Apache Software Foundation

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

---

name: slf4j-reload4j
license_category: binary
module: hadoop-common
license_name: MIT License
version: 1.7.36
libraries:
  - org.slf4j: slf4j-reload4j

---

name: org.codehaus.woodstox stax2-api
license_category: binary
version: 4.2.1
module: druid-kerberos
license_name: BSD-3-Clause License
libraries:
  - org.codehaus.woodstox: stax2-api

---

name: Kafka clients
version: 6.2.12-ccs
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - org.apache.kafka: kafka-clients

---
name: Kafka-schema-registry-client
version: 6.2.12
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - io.confluent: kafka-schema-registry-client
  - io.confluent: common-config
  - io.confluent: common-utils

---

name: Swagger
version: 1.6.2
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - io.swagger: swagger-core
  - io.swagger: swagger-models

---

name: Jackson Dataformat Yaml
version: 2.12.7
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - com.fasterxml.jackson.dataformat: jackson-dataformat-yaml

---

name: Kinesis Client
license_category: binary
version: 1.14.4
module: extensions/druid-kinesis-indexing-service
license_name: Apache License version 2.0
libraries:
  - com.amazonaws: amazon-kinesis-client

---

name: Kafka Client
version: 5.5.1-ccs
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - org.apache.kafka: kafka-clients

---

name: com.rabbitmq stream-client
license_category: binary
version: 0.9
module: extensions-contrib/rabbit-stream-indexing-service
license_name: Apache License version 2.0
libraries:
  - com.rabbitmq: stream-client

---

name: swagger-annotations
version: 1.6.0
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - io.swagger: swagger-annotations

---

name: jersey-common
version: '2.30'
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - org.glassfish.jersey.core: jersey-common

---

name: osgi-resource-locator
version: 1.0.3
license_category: binary
module: extensions/druid-avro-extensions
license_name: Eclipse Public License 2.0
libraries:
  - org.glassfish.hk2: osgi-resource-locator

---

name: jakarta.inject
version: 2.6.1
license_category: binary
module: extensions/druid-avro-extensions
license_name: Eclipse Public License 2.0
libraries:
  - org.glassfish.hk2.external: jakarta.inject

---

name: jakarta.annotation
version: 1.3.5
license_category: binary
module: extensions/druid-avro-extensions
license_name: Eclipse Public License 2.0
libraries:
  - jakarta.annotation: jakarta.annotation-api

---

name: javax.ws.rs-api
version: 2.1.1
license_category: binary
module: extensions/druid-avro-extensions
license_name: Eclipse Public License 2.0
libraries:
  - javax.ws.rs: javax.ws.rs-api

---

name: jakarta.ws.rs-api
version: 2.1.6
license_category: binary
module: extensions/druid-avro-extensions
license_name: Eclipse Public License 2.0
libraries:
  - jakarta.ws.rs: jakarta.ws.rs-api

---

name: swagger-annotations
version: 2.1.10
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - io.swagger: swagger-annotations
  - io.swagger.core.v3: swagger-annotations

---

name: Kafka Schema Registry Client
version: 6.2.12
license_category: binary
module: extensions/druid-protobuf-extensions
license_name: Apache License version 2.0
libraries:
  - io.confluent: kafka-schema-registry-client
  - io.confluent: common-utils

---

name: org.yaml snakeyaml
license_category: binary
module: extensions/druid-protobuf-extensions
license_name: Apache License version 2.0
version: 2.0
libraries:
  - org.yaml: snakeyaml



---

name: Confluent Kafka Client
version: 6.2.12-ccs
license_category: binary
module: extensions/druid-protobuf-extensions
license_name: Apache License version 2.0
libraries:
  - org.apache.kafka: kafka-clients


---

name: swagger-annotations
version: 2.1.10
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - io.swagger: swagger-annotations
  - io.swagger.core.v3: swagger-annotations

---

name: Apache Velocity Engine
version: 2.3
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
libraries:
  - org.apache.velocity: velocity-engine-core
notices:
  - velocity-engine-core: |
      Apache Velocity

      Copyright (C) 2000-2007 The Apache Software Foundation

---

name: Apache Avro
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
version: 1.11.3
libraries:
  - org.apache.avro: avro
  - org.apache.avro: avro-mapred
  - org.apache.avro: avro-ipc
  - org.apache.avro: avro-ipc-jetty
notices:
  - avro: |
      Apache Avro
      Copyright 2010-2019 The Apache Software Foundation
  - avro-ipc: |
      Apache Avro IPC
      Copyright 2010-2019 The Apache Software Foundation
  - avro-ipc-jetty: |
      Apache Avro IPC Jetty
      Copyright 2009-2019 The Apache Software Foundation
  - avro-mapred: |
      Apache Avro
      Copyright 2010-2019 The Apache Software Foundation

      Based upon the representations of upstream licensors, it is understood that
      portions of the mapreduce API included in the Java implementation are licensed
      from various contributors under one or more contributor license agreements to
      Odiago, Inc. and were then contributed by Odiago to Apache Avro, which has now
      made them available under the Apache 2.0 license. The original file header text
      is:

      | Licensed to Odiago, Inc. under one or more contributor license
      | agreements.  See the NOTICE file distributed with this work for
      | additional information regarding copyright ownership.  Odiago, Inc.
      | licenses this file to you under the Apache License, Version 2.0
      | (the "License"); you may not use this file except in compliance
      | with the License.  You may obtain a copy of the License at
      |
      |     http://www.apache.org/licenses/LICENSE-2.0
      |
      | Unless required by applicable law or agreed to in writing, software
      | distributed under the License is distributed on an "AS IS" BASIS,
      | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      | implied.  See the License for the specific language governing
      | permissions and limitations under the License.

      The Odiago NOTICE at the time of the contribution:

      | This product includes software developed by Odiago, Inc.
      | (http://www.wibidata.com).

---

name: Javax Annotation API
license_category: binary
module: extensions/druid-avro-extensions
license_name: CDDL 1.1
version: 1.3.2
copyright: Oracle and/or its affiliates
license_file_path: licenses/bin/javax.annotation-api.CDDL11
libraries:
  - javax.annotation: javax.annotation-api

---

name: Schema Repository
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
version: 0.1.3
libraries:
  - org.schemarepo: schema-repo-api
  - org.schemarepo: schema-repo-avro
  - org.schemarepo: schema-repo-client
  - org.schemarepo: schema-repo-common

---

name: Gson
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
version: 2.3.1
libraries:
  - com.google.code.gson: gson

---

name: jaxb
license_category: binary
module: extensions/druid-avro-extensions
license_name: CDDL 1.1
version: 2.2.3-1
libraries:
  - com.sun.xml.bind: jaxb-impl

---

name: commons-cli
license_category: binary
module: extensions/druid-avro-extensions
license_name: Apache License version 2.0
version: 1.5.0
libraries:
  - commons-cli: commons-cli

---

name: Apache Hive
license_category: binary
module: extensions/druid-bloom-filter
license_name: Apache License version 2.0
version: 2.8.1
libraries:
  - org.apache.hive: hive-storage-api
notices:
  - hive-storage-api: |
      Hive Storage API
      Copyright 2018 The Apache Software Foundation

---

name: DataSketches
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 4.2.0
libraries:
  - org.apache.datasketches: datasketches-java

---

name: DataSketches
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.2.0
libraries:
  - org.apache.datasketches: datasketches-memory

---

name: Jackson
license_category: binary
module: extensions/druid-hdfs-storage
license_name: Apache License version 2.0
version: 1.9.2
libraries:
  - org.codehaus.jackson: jackson-jaxrs
  - org.codehaus.jackson: jackson-xc

---

name: Hadoop Client API
license_category: binary
module: extensions/druid-hdfs-storage
license_name: Apache License version 2.0
version: 3.3.6
libraries:
  - org.apache.hadoop: hadoop-client-api

---

name: Apache Kafka
version: 3.6.1
license_category: binary
module: extensions/druid-kafka-indexing-service
license_name: Apache License version 2.0
libraries:
  - org.apache.kafka: kafka-clients
notices:
  - kafka-clients: |
      Apache Kafka
      Copyright 2023 The Apache Software Foundation.

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

      This distribution has a binary dependency on jersey, which is available under the CDDL
      License. The source code of jersey can be found at https://github.com/jersey/jersey/.

      This distribution has a binary test dependency on jqwik, which is available under
      the Eclipse Public License 2.0. The source code can be found at
      https://github.com/jlink/jqwik.

      The streams-scala (streams/streams-scala) module was donated by Lightbend and the original code was copyrighted by them:
        Copyright (C) 2018 Lightbend Inc. <https://www.lightbend.com>
        Copyright (C) 2017-2018 Alexis Seigneurin.

      This project contains the following code copied from Apache Hadoop:
        clients/src/main/java/org/apache/kafka/common/utils/PureJavaCrc32C.java
        Some portions of this file Copyright (c) 2004-2006 Intel Corporation and licensed under the BSD license.

      This project contains the following code copied from Apache Hive:
        streams/src/main/java/org/apache/kafka/streams/state/internals/Murmur3.java

---


name: Apache Parquet
license_category: binary
module: extensions/druid-parquet-extensions
license_name: Apache License version 2.0
version: 1.13.0
libraries:
  - org.apache.parquet: parquet-avro
  - org.apache.parquet: parquet-column
  - org.apache.parquet: parquet-common
  - org.apache.parquet: parquet-encoding
  - org.apache.parquet: parquet-hadoop
  - org.apache.parquet: parquet-jackson
  - org.apache.parquet: parquet-format-structures
notices:
  - parquet-avro: |
      Apache Parquet MR
      Copyright 2014 The Apache Software Foundation


      --------------------------------------------------------------------------------

      This product includes code from Apache Avro, which includes the following in
      its NOTICE file:

        Apache Avro
        Copyright 2010-2015 The Apache Software Foundation
  - parquet-jackson: |
      This product currently only contains code developed by authors
      of specific components, as identified by the source code files;
      if such notes are missing files have been created by
      Tatu Saloranta.

      For additional credits (generally to people who reported problems)
      see CREDITS file.

---

name: Apache Parquet Format
license_category: binary
module: extensions/druid-parquet-extensions
license_name: Apache License version 2.0
version: 2.4.0
libraries:
  - org.apache.parquet: parquet-format
notices:
  - parquet-format: |
      Apache Parquet Format
      Copyright 2017 The Apache Software Foundation

---

name: Protocol Buffers Dynamic Schema
license_category: binary
module: extensions/protobuf-extensions
license_name: Apache License version 2.0
version: 0.9.3
libraries:
  - com.github.os72: protobuf-dynamic

---

name: Gson
license_category: binary
module: extensions/protobuf-extensions
license_name: Apache License version 2.0
version: 2.8.9
libraries:
  - com.google.code.gson: gson

---

name: j2objc
license_category: binary
module: extensions/protobuf-extensions
license_name: Apache License version 2.0
version: 2.8
libraries:
  - com.google.j2objc: j2objc-annotations

---

name: Checker Qual
license_category: binary
module: java-core
license_name: MIT License
version: 2.5.7
copyright: the Checker Framework developers
license_file_path: licenses/bin/checker-qual.MIT
libraries:
  - org.checkerframework: checker-qual

---

name: JCodings
license_category: binary
module: java-core
license_name: MIT License
version: 1.0.43
copyright: JRuby Team
license_file_path: licenses/bin/jcodings.MIT
libraries:
  - org.jruby.jcodings: jcodings

---

name: Joni
license_category: binary
module: java-core
license_name: MIT License
version: 2.1.27
copyright: JRuby Team
license_file_path: licenses/bin/joni.MIT
libraries:
  - org.jruby.joni: joni

---

name: JCL 1.2 Implemented Over SLF4J
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.7.36
copyright: QOS.ch
libraries:
  - org.slf4j: jcl-over-slf4j

---

name: SLF4J API
license_category: binary
module: java-core
license_name: MIT License
version: 1.7.36
copyright: QOS.ch
license_file_path: licenses/bin/slf4j.MIT
libraries:
  - org.slf4j: slf4j-api

---

name: JNI binding for Zstd
license_category: binary
module: java-core
license_name: BSD-2-Clause License
version: 1.5.2-3
copyright: Luben Karavelov
license_file_path: licenses/bin/zstd-jni.BSD2
libraries:
  - com.github.luben: zstd-jni

---

name: Zstandard
license_category: binary
module: java-core
license_name: BSD-3-Clause License
version: 1.3.3
copyright: Facebook, Inc.
license_file_path: licenses/bin/zstandard.BSD3

---

name: FindBugs JSR305
license_category: binary
module: java-core
license_name: BSD-3-Clause License
version: 2.0.1
copyright: FindBugs
license_file_path: licenses/bin/jsr305.BSD3
libraries:
  - com.google.code.findbugs: jsr305
skip_dependency_report_check: true

---

name: Protocol Buffers
license_category: binary
module: java-core
license_name: BSD-3-Clause License
version: 3.24.0
copyright: Google, Inc.
license_file_path:
  - licenses/bin/protobuf-java.BSD3
  - licenses/bin/protobuf-java-redhat.BSD3
  - licenses/bin/protobuf-java-bloomberg.BSD3
libraries:
  - com.google.protobuf: protobuf-java
additional_license_statement: except src/google/protobuf/stubs/atomicops_internals_generic_gcc.h and src/google/protobuf/stubs/atomicops_internals_power.h files which are copyrighted by Red Hat Inc and Bloomberg Finance LP, respectively, and available under a BSD-3-Clause

---

name: ANTLR 4 Runtime
license_category: binary
module: java-core
license_name: BSD-3-Clause License
version: 4.5.3
copyright: The ANTLR Project
license_file_path: licenses/bin/antlr4-runtime.BSD3
libraries:
  - org.antlr: antlr4-runtime

---

name: Janino and Commons Compiler
license_category: binary
module: java-core
license_name: BSD-3-Clause License
version: 3.0.11
copyright: Arno Unkrig and TIBCO Software Inc.
license_file_path: licenses/bin/janino.BSD3
libraries:
  - org.codehaus.janino: janino
  - org.codehaus.janino: commons-compiler

---

name: ASM
license_category: binary
module: java-core
license_name: BSD-3-Clause License
version: 9.3
copyright: INRIA, France Telecom
license_file_path: licenses/bin/asm.BSD3
libraries:
  - org.ow2.asm: asm
  - org.ow2.asm: asm-commons
  - org.ow2.asm: asm-tree
  - org.ow2.asm: asm-analysis

---

name: FindBugs JSR305
license_category: binary
module: hadoop-client
license_name: BSD-3-Clause License
version: 3.0.0
copyright: FindBugs
license_file_path: licenses/bin/jsr305.BSD3
libraries:
  - com.google.code.findbugs: jsr305
skip_dependency_report_check: true

---

name: Protocol Buffers
license_category: binary
module: hadoop-client
license_name: BSD-3-Clause License
version: 2.5.0
copyright: Google, Inc.
license_file_path: licenses/bin/protobuf-java.BSD3
libraries:
  - com.google.protobuf: protobuf-java

---

name: Paranamer
license_category: binary
module: hadoop-client
license_name: BSD-3-Clause License
version: 2.3
copyright: Paul Hammant & ThoughtWorks Inc
license_file_path: licenses/bin/paranamer.BSD3
libraries:
  - com.thoughtworks.paranamer: paranamer

---


name: Paranamer
license_category: binary
module: extensions/druid-avro-extensions
license_name: BSD-3-Clause License
version: 2.7
copyright: Paul Hammant & ThoughtWorks Inc
license_file_path: licenses/bin/paranamer.BSD3
libraries:
  - com.thoughtworks.paranamer: paranamer

---

name: StringTemplate
license_category: binary
module: extensions/druid-lookups-cached-single
license_name: BSD-3-Clause License
version: 3.2
copyright: Terrence Parr
license_file_path: licenses/bin/antlr-stringtemplate.BSD3
libraries:
  - org.antlr: stringtemplate

---

name: ANTLR
license_category: binary
module: extensions/druid-lookups-cached-single
license_name: BSD-3-Clause License
version: 2.7.7
copyright: The ANTLR Project
license_file_path: licenses/bin/antlr.BSD3
libraries:
  - antlr: antlr

---

name: PostgreSQL JDBC Driver
license_category: binary
module: extensions/druid-lookups-cached-single
license_name: BSD-2-Clause License
version: 42.7.2
copyright: PostgreSQL Global Development Group
license_file_path: licenses/bin/postgresql.BSD2
libraries:
  - org.postgresql: postgresql

---

name: PostgreSQL JDBC Driver
license_category: binary
module: extensions/druid-lookups-cached-global
license_name: BSD-2-Clause License
version: 42.7.2
copyright: PostgreSQL Global Development Group
license_file_path: licenses/bin/postgresql.BSD2
libraries:
  - org.postgresql: postgresql

---

name: PostgreSQL JDBC Driver
license_category: binary
module: extensions/postgresql-metadata-storage
license_name: BSD-2-Clause License
version: 42.7.2
copyright: PostgreSQL Global Development Group
license_file_path: licenses/bin/postgresql.BSD2
libraries:
  - org.postgresql: postgresql

---

name: Protocol Buffers
license_category: binary
module: extensions/druid-protobuf-extensions
license_name: BSD-3-Clause License
version: 3.24.0
copyright: Google, Inc.
license_file_path: licenses/bin/protobuf-java.BSD3
libraries:
  - com.google.protobuf: protobuf-java
  - com.google.protobuf: protobuf-java-util

---

name: ICU4J
license_category: binary
module: java-core
license_name: Unicode/ICU License
version: 73.2
copyright: International Business Machines Corporation and others
license_file_path: licenses/bin/icu4j.ICU
libraries:
  - com.ibm.icu: icu4j

---

name: JavaBeans Activation Framework
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 1.2.0
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.activation.CDDL11
libraries:
  - com.sun.activation: javax.activation

---

name: Jersey
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 1.19.4
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jersey.CDDL11
libraries:
  - com.sun.jersey: jersey-core
  - com.sun.jersey: jersey-server
  - com.sun.jersey: jersey-servlet
  - com.sun.jersey: contribs
  - com.sun.jersey.contribs: jersey-guice

---

name: Expression Language 3.0 API
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 3.0.0
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.el: javax.el-api

---

name: Java Servlet API
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 3.1.0
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.servlet: javax.servlet-api

---

name: JSR311 API
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 1.1.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jsr311-api.CDDL11
libraries:
  - javax.ws.rs: jsr311-api

---

name: JAXB Runtime
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 2.3.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jaxb-runtime.CDDL11
libraries:
  - org.glassfish.jaxb: jaxb-runtime

---

name: TXW2 Runtime
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 2.3.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jaxb-runtime.CDDL11
libraries:
  - org.glassfish.jaxb: txw2

---

name: Extended StAX API
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 1.8
copyright: Oracle and/or its affiliates
license_file_path: licenses/bin/jaxb-runtime.CDDL11
libraries:
  - org.jvnet.staxex: stax-ex

---

name: Istack Common Utility Code Runtime
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 3.0.7
copyright: Oracle and/or its affiliates
license_file_path: licenses/bin/jaxb-runtime.CDDL11
libraries:
  - com.sun.istack: istack-commons-runtime

---

name: FastInfoset
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.2.15
libraries:
  - com.sun.xml.fastinfoset: FastInfoset

---
name: Jersey
license_category: binary
module: hadoop-client
license_name: CDDL 1.1
version: 1.9
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jersey.CDDL11
libraries:
  - com.sun.jersey: jersey-client
  - com.sun.jersey: jersey-core

---

name: JavaBeans Activation Framework
license_category: binary
module: hadoop-client
license_name: CDDL 1.1
version: 1.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.activation: activation

---

name: Java Servlet API
license_category: binary
module: hadoop-client
license_name: CDDL 1.1
version: 2.5
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.servlet: javax.servlet-api

---

name: JAXB
license_category: binary
module: hadoop-client
license_name: CDDL 1.1
version: 2.2.2
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.xml.bind: jaxb-api

---

name: JAXB
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 2.3.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.xml.bind: jaxb-api

---

name: jsp-api
license_category: binary
module: hadoop-client
license_name: CDDL 1.1
version: 2.1
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/javax.CDDL11
libraries:
  - javax.servlet.jsp: jsp-api

---

name: Jersey
license_category: binary
module: extensions/druid-avro-extensions
license_name: CDDL 1.1
version: 1.19.4
copyright: Oracle and/or its affiliates.
license_file_path: licenses/bin/jersey.CDDL11
libraries:
  - com.sun.jersey: jersey-client

---

name: OkHttp Aether Connector
license_category: binary
module: java-core
license_name: Eclipse Public License 1.0
version: 0.0.9
copyright: to original author or authors
license_file_path: licenses/bin/aether-connector-okhttp.EPL1
libraries:
  - io.tesla.aether: aether-connector-okhttp

---

name: Tesla Aether
license_category: binary
module: java-core
license_name: Eclipse Public License 1.0
version: 0.0.5
copyright: to original author or authors
license_file_path: licenses/bin/tesla-aether.EPL1
libraries:
  - io.tesla.aether: tesla-aether

---

name: Eclipse Aether libraries
license_category: binary
module: java-core
license_name: Eclipse Public License 1.0
version: 0.9.0.M2
copyright: Sonatype, Inc.
license_file_path: licenses/bin/aether-core.EPL1
libraries:
  - org.eclipse.aether: aether-api
  - org.eclipse.aether: aether-connector-file
  - org.eclipse.aether: aether-impl
  - org.eclipse.aether: aether-spi
  - org.eclipse.aether: aether-util

---

name: Rhino
license_category: binary
module: java-core
license_name: Mozilla Public License Version 2.0
version: 1.7.14
copyright: Mozilla and individual contributors.
license_file_path: licenses/bin/rhino.MPL2
libraries:
  - org.mozilla: rhino

---

name: JCIP Annotations Under Apache License
license_category: binary
module: extensions/druid-hdfs-storage
license_name: Apache License version 2.0
version: 1.0-1
libraries:
  - com.github.stephenc.jcip: jcip-annotations

---

name: Reactive Streams
license_category: binary
module: java-core
license_name: Creative Commons CC0
version: 1.0.2
license_file_path: licenses/bin/reactive-streams.CC0
libraries:
  - org.reactivestreams: reactive-streams

---

name: a smear function adapted from MurmurHash3
license_category: source
module: java-core
license_name: Public Domain
copyright: Austin Appleby who has placed MurmurHash3 in the public domain (https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp)
source_paths:
  - processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/Groupers.java

---

name: example data collected from the Wikipedia edit stream API (this content is NOT part of the source code and is only used for example and tutorial purposes)
license_category: source
module: java-core
license_name: Creative Commons Attribution-ShareAlike 3.0 Unported License
copyright: Wikipedia editors and contributors for the text content
license_file_path: licenses/src/CC-BY-SA.txt
source_paths:
  - examples/quickstart/tutorial/wikiticker-2015-09-12-sampled.json.gz

---

name: AOP Alliance
license_category: binary
module: java-core
license_name: Public Domain
version: 1.0
libraries:
  - aopalliance: aopalliance

---

name: XZ
license_category: binary
module: java-core
license_name: Public Domain
version: 1.9
libraries:
  - org.tukaani: xz

---

name: Apache ORC libraries
license_category: binary
module: extensions/druid-orc-extensions
license_name: Apache License version 2.0
version: 1.7.6
libraries:
  - org.apache.orc: orc-mapreduce
  - org.apache.orc: orc-core
  - org.apache.orc: orc-shims
notices:
  - orc-mapreduce: |
      ORC MapReduce
      Copyright 2013-2021 The Apache Software Foundation
  - orc-core: |
      ORC Core
      Copyright 2013-2021 The Apache Software Foundation
  - orc-shims: |
      ORC Shims
      Copyright 2013-2021 The Apache Software Foundation

---

name: ThreeTen
license_category: binary
module: extensions/druid-orc-extensions
license_name: BSD-3-Clause License
version: 1.5.0
libraries:
  - org.threeten: threeten-extra
notices:
  - threeten-extra: |
      ThreeTen-Extra
      Copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos.

---

name: aircompressor
license_category: binary
module: extensions/druid-orc-extensions
license_name: Apache License version 2.0
version: "0.21"
libraries:
  - io.airlift: aircompressor

---

name: Hive storage API
license_category: binary
module: extensions/druid-orc-extensions
license_name: Apache License version 2.0
version: 2.8.1
libraries:
  - org.apache.hive: hive-storage-api
notices:
  - hive-storage-api: |
      Hive Storage API
      Copyright 2018 The Apache Software Foundation

---

name: Jetbrains Annotations
license_category: binary
module: extensions/druid-orc-extensions
license_name: Apache License version 2.0
version: 17.0.0
libraries:
  - org.jetbrains: annotations

---

name: Google Cloud Storage JSON API
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: v1-rev20231028-2.0.0
libraries:
  - com.google.apis: google-api-services-storage

---

name: Google APIs Client Library For Java
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 2.2.0
libraries:
  - com.google.api-client: google-api-client

---

name: Google Storage Client Library For Java
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache-2.0
version: 2.29.1
libraries:
  - com.google.cloud: google-cloud-storage

---

name: Google Cloud Storage API
license_category: binary
module: extensions/druid-google-extensions
license_name: BSD-3-Clause License
version: 2.20.0
libraries:
  - com.google.cloud: google-cloud-storage
  - com.google.api: api-common

---

name: gax
license_category: binary
module: extensions/druid-google-extensions
license_name: BSD-3-Clause License
version: 2.37.0
libraries:
  - com.google.api: gax
  - com.google.api: gax-grpc
  - com.google.api: gax-httpjson

---

name: grpc-api
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 2.29.1-alpha
libraries:
  - com.google.api.grpc: gapic-google-cloud-storage-v2
  - com.google.api.grpc: grpc-google-cloud-storage-v2
  - com.google.api.grpc: proto-google-cloud-storage-v2

---

name: grpc-io
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 1.59.0
libraries:
  - io.grpc: grpc-alts
  - io.grpc: grpc-api
  - io.grpc: grpc-auth
  - io.grpc: grpc-context
  - io.grpc: grpc-core
  - io.grpc: grpc-grpclib
  - io.grpc: grpc-inprocess
  - io.grpc: grpc-protobuf
  - io.grpc: grpc-protobuf-lite
  - io.grpc: grpc-stub

---

name: proto-google-common-protos
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 2.28.0
libraries:
  - com.google.api.grpc: proto-google-common-protos

---

name: proto-google-iam-v1
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 1.23.0
libraries:
  - com.google.api.grpc: proto-google-iam-v1

---

name: google-auth
license_category: binary
module: extensions/druid-google-extensions
license_name: BSD-3-Clause License
version: 1.20.0
libraries:
  - com.google.auth: google-auth-library-credentials
  - com.google.auth: google-auth-library-oauth2-http

---

name: google-auto-value
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 1.10.4
libraries:
  - com.google.auto.value: auto-value-annotations

---

name: google-cloud
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 2.27.0
libraries:
  - com.google.cloud: google-cloud-core
  - com.google.cloud: google-cloud-core-grpc
  - com.google.cloud: google-cloud-core-http

---

name: listenablefuture
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 9999.0-empty-to-avoid-conflict-with-guava
libraries:
  - com.google.guava: listenablefuture

---

name: google-http-client
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 1.43.3
libraries:
  - com.google.http-client: google-http-client-apache-v2
  - com.google.http-client: google-http-client-appengine
  - com.google.http-client: google-http-client-gson

---

name: google-protobuf
license_category: binary
module: extensions/druid-google-extensions
license_name: BSD-3-Clause License
version: 3.24.4
libraries:
  - com.google.protobuf: protobuf-java-util

---

name: google-grpc
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 1.59.0
libraries:
  - io.grpc: grpc-grpclb

---

name: io-opencensus
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 0.31.1
libraries:
  - io.opencensus: opencensus-api
  - io.opencensus: opencensus-contrib-http-util

---

name: conscrypt-openjdk-uber
license_category: binary
module: extensions/druid-google-extensions
license_name: Apache License version 2.0
version: 2.5.2
libraries:
  - org.conscrypt: conscrypt-openjdk-uber

---

name: threetenbp
license_category: binary
module: extensions/druid-google-extensions
license_name: BSD-3-Clause License
version: 1.6.8
libraries:
  - org.threeten: threetenbp

---

name: Google OAuth Client Library For Java
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.34.1
libraries:
  - com.google.oauth-client: google-oauth-client

---

name: JavaBeans Activation Framework API
license_category: binary
module: java-core
license_name: CDDL 1.1
version: 1.2.0
copyright: Oracle and/or its affiliates
license_file_path: licenses/bin/javax.activation-api.CDDL11
libraries:
  - javax.activation: javax.activation-api

---

name: Apache Kafka
license_category: binary
module: extensions/kafka-extraction-namespace
license_name: Apache License version 2.0
version: 3.6.1
libraries:
  - org.apache.kafka: kafka-clients
notices:
  - kafka-clients: |
      Apache Kafka
      Copyright 2023 The Apache Software Foundation.

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

      This distribution has a binary dependency on jersey, which is available under the CDDL
      License. The source code of jersey can be found at https://github.com/jersey/jersey/.

      This distribution has a binary test dependency on jqwik, which is available under
      the Eclipse Public License 2.0. The source code can be found at
      https://github.com/jlink/jqwik.

      The streams-scala (streams/streams-scala) module was donated by Lightbend and the original code was copyrighted by them:
        Copyright (C) 2018 Lightbend Inc. <https://www.lightbend.com>
        Copyright (C) 2017-2018 Alexis Seigneurin.

      This project contains the following code copied from Apache Hadoop:
        clients/src/main/java/org/apache/kafka/common/utils/PureJavaCrc32C.java
        Some portions of this file Copyright (c) 2004-2006 Intel Corporation and licensed under the BSD license.

      This project contains the following code copied from Apache Hive:
        streams/src/main/java/org/apache/kafka/streams/state/internals/Murmur3.java

---

name: Scala Library
license_category: binary
module: extensions/kafka-extraction-namespace
license_name: Apache License version 2.0
copyright: LAMP/EPFL and Lightbend, Inc.
version: 2.12.7
libraries:
  - org.scala-lang: scala-library

---

name: Microsoft Azure SDK For Key Vault Core
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.0.0
libraries:
  - com.microsoft.azure: azure-keyvault-core

---

name: Microsoft Azure Blob Storage SDK
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 12.25.1
libraries:
  - com.azure: azure-storage-blob

---

name: Microsoft Azure Identity SDK
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.11.1
libraries:
  - com.azure: azure-identity

---

name: Microsoft Azure Batch Blob Storage SDK
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 12.21.1
libraries:
  - com.azure: azure-storage-blob-batch

---

name: Microsoft Azure Storage Common
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 12.24.1
libraries:
  - com.azure: azure-storage-common

---

name: Microsoft Azure Internal Avro
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 12.10.1
libraries:
  - com.azure: azure-storage-internal-avro

---

name: Microsoft Azure JSON
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.1.0
libraries:
  - com.azure: azure-json

---
name: Microsoft Azure Netty Http
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.13.11
libraries:
  - com.azure: azure-core-http-netty

---

name: Microsoft Azure Core
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.45.1
libraries:
  - com.azure: azure-core

---

name: Microsoft MSAL4J
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.14.0
libraries:
  - com.microsoft.azure: msal4j

---

name: Microsoft MSAL4J Persistence
license_category: binary
module: extensions/druid-azure-extensions
license_name: MIT License
copyright: Microsoft
version: 1.2.0
libraries:
  - com.microsoft.azure: msal4j-persistence-extension

---

name: NimbusDS Content Type
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 2.2
libraries:
  - com.nimbusds: content-type

---

name: NimbusDS Jose
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 9.30.2
libraries:
  - com.nimbusds: nimbus-jose-jwt

---

name: NimbusDS Oauth
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 10.7.1
libraries:
  - com.nimbusds: oauth2-oidc-sdk

---

name: Reactor Netty
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 1.0.39
libraries:
  - io.projectreactor.netty: reactor-netty-core
  - io.projectreactor.netty: reactor-netty-http

---

name: Reactor Core
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 3.4.34
libraries:
  - io.projectreactor: reactor-core
---

name: Woodstox
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 6.2.4
libraries:
  - com.fasterxml.woodstox: woodstox-core

---
name: Netty
license_category: binary
module: extensions/druid-azure-extensions
license_name: Apache License version 2.0
version: 2.0.61.Final
libraries:
  - io.netty: netty-tcnative-boringssl-static
  - io.netty: netty-tcnative-classes
notice: |
  ==
                              The Netty Project
                              =================

  Please visit the Netty web site for more information:

    * http://netty.io/

  Copyright 2014 The Netty Project

  The Netty Project licenses this file to you under the Apache License,
  version 2.0 (the "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at:

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  License for the specific language governing permissions and limitations
  under the License.

  Also, please refer to each LICENSE.<component>.txt file, which is located in
  the 'license' directory of the distribution file, for the license terms of the
  components that this product depends on.

  -------------------------------------------------------------------------------
  This product contains the extensions to Java Collections Framework which has
  been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:

    * LICENSE:
      * license/LICENSE.jsr166y.txt (Public Domain)
    * HOMEPAGE:
      * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
      * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/

  This product contains a modified version of Robert Harder's Public Domain
  Base64 Encoder and Decoder, which can be obtained at:

    * LICENSE:
      * license/LICENSE.base64.txt (Public Domain)
    * HOMEPAGE:
      * http://iharder.sourceforge.net/current/java/base64/

  This product contains a modified portion of 'Webbit', an event based
  WebSocket and HTTP server, which can be obtained at:

    * LICENSE:
      * license/LICENSE.webbit.txt (BSD License)
    * HOMEPAGE:
      * https://github.com/joewalnes/webbit

  This product contains a modified portion of 'SLF4J', a simple logging
  facade for Java, which can be obtained at:

    * LICENSE:
      * license/LICENSE.slf4j.txt (MIT License)
    * HOMEPAGE:
      * http://www.slf4j.org/

  This product contains a modified portion of 'Apache Harmony', an open source
  Java SE, which can be obtained at:

    * NOTICE:
      * license/NOTICE.harmony.txt
    * LICENSE:
      * license/LICENSE.harmony.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://archive.apache.org/dist/harmony/

  This product contains a modified portion of 'jbzip2', a Java bzip2 compression
  and decompression library written by Matthew J. Francis. It can be obtained at:

    * LICENSE:
      * license/LICENSE.jbzip2.txt (MIT License)
    * HOMEPAGE:
      * https://code.google.com/p/jbzip2/

  This product contains a modified portion of 'libdivsufsort', a C API library to construct
  the suffix array and the Burrows-Wheeler transformed string for any input string of
  a constant-size alphabet written by Yuta Mori. It can be obtained at:

    * LICENSE:
      * license/LICENSE.libdivsufsort.txt (MIT License)
    * HOMEPAGE:
      * https://github.com/y-256/libdivsufsort

  This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
   which can be obtained at:

    * LICENSE:
      * license/LICENSE.jctools.txt (ASL2 License)
    * HOMEPAGE:
      * https://github.com/JCTools/JCTools

  This product optionally depends on 'JZlib', a re-implementation of zlib in
  pure Java, which can be obtained at:

    * LICENSE:
      * license/LICENSE.jzlib.txt (BSD style License)
    * HOMEPAGE:
      * http://www.jcraft.com/jzlib/

  This product optionally depends on 'Compress-LZF', a Java library for encoding and
  decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:

    * LICENSE:
      * license/LICENSE.compress-lzf.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/ning/compress

  This product optionally depends on 'lz4', a LZ4 Java compression
  and decompression library written by Adrien Grand. It can be obtained at:

    * LICENSE:
      * license/LICENSE.lz4.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/jpountz/lz4-java

  This product optionally depends on 'lzma-java', a LZMA Java compression
  and decompression library, which can be obtained at:

    * LICENSE:
      * license/LICENSE.lzma-java.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/jponge/lzma-java

  This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
  and decompression library written by William Kinney. It can be obtained at:

    * LICENSE:
      * license/LICENSE.jfastlz.txt (MIT License)
    * HOMEPAGE:
      * https://code.google.com/p/jfastlz/

  This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
  interchange format, which can be obtained at:

    * LICENSE:
      * license/LICENSE.protobuf.txt (New BSD License)
    * HOMEPAGE:
      * https://github.com/google/protobuf

  This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
  a temporary self-signed X.509 certificate when the JVM does not provide the
  equivalent functionality.  It can be obtained at:

    * LICENSE:
      * license/LICENSE.bouncycastle.txt (MIT License)
    * HOMEPAGE:
      * http://www.bouncycastle.org/

  This product optionally depends on 'Snappy', a compression library produced
  by Google Inc, which can be obtained at:

    * LICENSE:
      * license/LICENSE.snappy.txt (New BSD License)
    * HOMEPAGE:
      * https://github.com/google/snappy

  This product optionally depends on 'JBoss Marshalling', an alternative Java
  serialization API, which can be obtained at:

    * LICENSE:
      * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
    * HOMEPAGE:
      * http://www.jboss.org/jbossmarshalling

  This product optionally depends on 'Caliper', Google's micro-
  benchmarking framework, which can be obtained at:

    * LICENSE:
      * license/LICENSE.caliper.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/google/caliper

  This product optionally depends on 'Apache Commons Logging', a logging
  framework, which can be obtained at:

    * LICENSE:
      * license/LICENSE.commons-logging.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://commons.apache.org/logging/

  This product optionally depends on 'Apache Log4J', a logging framework, which
  can be obtained at:

    * LICENSE:
      * license/LICENSE.log4j.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://logging.apache.org/log4j/

  This product optionally depends on 'Aalto XML', an ultra-high performance
  non-blocking XML processor, which can be obtained at:

    * LICENSE:
      * license/LICENSE.aalto-xml.txt (Apache License 2.0)
    * HOMEPAGE:
      * http://wiki.fasterxml.com/AaltoHome

  This product contains a modified version of 'HPACK', a Java implementation of
  the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:

    * LICENSE:
      * license/LICENSE.hpack.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/twitter/hpack

  This product contains a modified portion of 'Apache Commons Lang', a Java library
  provides utilities for the java.lang API, which can be obtained at:

    * LICENSE:
      * license/LICENSE.commons-lang.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://commons.apache.org/proper/commons-lang/


  This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.

    * LICENSE:
      * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
    * HOMEPAGE:
      * https://github.com/takari/maven-wrapper

---

name: org.apache.ranger ranger-plugins-audit
license_category: binary
version: 2.4.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.ranger: ranger-plugins-audit

---

name: org.apache.ranger ranger-plugins-common
license_category: binary
version: 2.4.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.ranger: ranger-plugins-common

---

name: gson
license_category: binary
module: druid-ranger-security
license_name: Apache License version 2.0
version: 2.10.1
libraries:
  - com.google.code.gson: gson

---

name: com.kstruct gethostname4j
license_category: binary
version: 1.0.0
module: druid-ranger-security
license_name: MIT License
libraries:
  - com.kstruct: gethostname4j

---

name: com.amazonaws aws-java-sdk-logs
license_category: binary
version: 1.12.638
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - com.amazonaws: aws-java-sdk-logs

---

name: com.amazonaws jmespath-java
license_category: binary
version: 1.12.638
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - com.amazonaws: jmespath-java

---

name: com.carrotsearch hppc
license_category: binary
version: 0.8.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - com.carrotsearch: hppc

---

name: org.locationtech.spatial4j spatial4j
license_category: binary
version: 0.7
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.locationtech.spatial4j: spatial4j

---

name: com.sun.jersey jersey-bundle
license_category: binary
version: 1.19.3
module: druid-ranger-security
license_name: CDDL 1.1
libraries:
  - com.sun.jersey: jersey-bundle

---

name: net.java.dev.jna jna-platform
license_category: binary
version: 5.13.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - net.java.dev.jna: jna-platform

---

name: JOpt Simple
license_category: binary
version: 5.0.2
module: druid-ranger-security
license_name: MIT License
libraries:
  - net.sf.jopt-simple: jopt-simple
copyright: Paul R. Holser, Jr.

---

name: org.apache.httpcomponents httpmime
license_category: binary
version: 4.5.6
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.httpcomponents: httpmime

---

name: org.apache.httpcomponents httpasyncclient
license_category: binary
version: 4.1.3
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.httpcomponents: httpasyncclient

---

name: org.elasticsearch securesm
license_category: binary
version: 2.1.9
module: druid-ranger-security
license_name: Creative Commons CC0
libraries:
  - org.hdrhistogram: HdrHistogram

---

name: Apache Lucene
license_category: binary
version: 8.4.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.lucene: lucene-analyzers-common
  - org.apache.lucene: lucene-backward-codecs
  - org.apache.lucene: lucene-core
  - org.apache.lucene: lucene-grouping
  - org.apache.lucene: lucene-highlighter
  - org.apache.lucene: lucene-join
  - org.apache.lucene: lucene-memory
  - org.apache.lucene: lucene-misc
  - org.apache.lucene: lucene-queries
  - org.apache.lucene: lucene-queryparser
  - org.apache.lucene: lucene-sandbox
  - org.apache.lucene: lucene-spatial
  - org.apache.lucene: lucene-spatial-extras
  - org.apache.lucene: lucene-spatial3d
  - org.apache.lucene: lucene-suggest

---

name: org.apache.httpcomponents httpcore-nio
license_category: binary
version: 4.4.6
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.httpcomponents: httpcore-nio

---

name: Apache Kafka
license_category: binary
version: 2.8.1
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.kafka: kafka-clients
notices:
  - kafka-clients: 'Apache Kafka Copyright 2019 The Apache Software Foundation.

This distribution has a binary dependency on jersey, which is available under
the CDDL License. The source code of jersey can be found at https://github.com/jersey/jersey/.'

---

name: org.apache.ranger ranger-plugins
license_category: binary
version: 2.4.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.ranger: ranger-plugins-cred
  - org.apache.ranger: ranger-plugin-classloader

---

name: Woodstox
license_category: binary
version: 6.4.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - com.fasterxml.woodstox: woodstox-core

---

name: com.github.spullara.mustache.java
license_category: binary
version: 0.9.6
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - com.github.spullara.mustache.java: compiler

---

name: com.tdunning t-digest
license_category: binary
version: 3.2
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - com.tdunning: t-digest

---

name: io.sgr s2-geometry-library-java
license_category: binary
version: 1.0.0
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - io.sgr: s2-geometry-library-java

---

name: org.apache.orc orc-core
license_category: binary
version: 1.5.8
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.orc: orc-core

---

name: org.apache.solr solr-solrj
license_category: binary
version: 8.11.2
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.apache.solr: solr-solrj

---

name: snappy-java
license_category: binary
version: 1.1.10.4
module: druid-ranger-security
license_name: Apache License version 2.0
libraries:
  - org.xerial.snappy: snappy-java
notices:
  - snappy-java: |
      This product includes software developed by Google
       Snappy: http://code.google.com/p/snappy/ (New BSD License)


      This library containd statically linked libstdc++. This inclusion is allowed by
      "GCC RUntime Library Exception"
      http://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html

      == Contributors ==
        * Tatu Saloranta
          * Providing benchmark suite
        * Alec Wysoker
          * Performance and memory usage improvement

---

name: Woodstox
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 5.4.0
libraries:
  - com.fasterxml.woodstox: woodstox-core

---

name: DNS Java
license_category: binary
module: java-core
license_name: BSD-2-Clause License
version: 2.1.7
libraries:
  - dnsjava: dnsjava

---

name: Hadoop shaded
license_category: binary
module: java-core
license_name: Apache License version 2.0
version: 1.1.1
libraries:
  - org.apache.hadoop.thirdparty: hadoop-shaded-protobuf_3_7
  - org.apache.hadoop.thirdparty: hadoop-shaded-guava

---

name: RE2/J
license_category: binary
module: java-core
license_name: The Go license
version: 1.1
license_file_path: licenses/bin/re2j.GO
libraries:
  - com.google.re2j: re2j

---
name: jakarta.activation
license_category: binary
module: extensions/druid-avro-extensions
license_name: Eclipse Distribution License 1.0
version: 1.2.1
libraries:
  - com.sun.activation: jakarta.activation

---

# Web console modules start
name: "@babel/code-frame"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.23.5
license_file_path: licenses/bin/@babel-code-frame.MIT

---

name: "@babel/helper-module-imports"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.22.15
license_file_path: licenses/bin/@babel-helper-module-imports.MIT

---

name: "@babel/helper-string-parser"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.23.4
license_file_path: licenses/bin/@babel-helper-string-parser.MIT

---

name: "@babel/helper-validator-identifier"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.22.20
license_file_path: licenses/bin/@babel-helper-validator-identifier.MIT

---

name: "@babel/highlight"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.23.4
license_file_path: licenses/bin/@babel-highlight.MIT

---

name: "@babel/runtime"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.21.0
license_file_path: licenses/bin/@babel-runtime.MIT

---

name: "@babel/types"
license_category: binary
module: web-console
license_name: MIT License
copyright: The Babel Team
version: 7.24.0
license_file_path: licenses/bin/@babel-types.MIT

---

name: "@blueprintjs/colors"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 4.2.1

---

name: "@blueprintjs/core"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 4.20.1

---

name: "@blueprintjs/datetime2"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 0.9.35

---

name: "@blueprintjs/datetime"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 4.4.36

---

name: "@blueprintjs/icons"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 4.16.0

---

name: "@blueprintjs/popover2"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 1.14.9

---

name: "@blueprintjs/select"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Palantir Technologies
version: 4.9.22

---

name: "@druid-toolkit/query"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Imply Data
version: 0.21.9

---

name: "@druid-toolkit/visuals-core"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Imply Data
version: 0.3.3

---

name: "@druid-toolkit/visuals-react"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Imply Data
version: 0.3.3

---

name: "@emotion/cache"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 10.0.29
license_file_path: licenses/bin/@emotion-cache.MIT

---

name: "@emotion/hash"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.8.0
license_file_path: licenses/bin/@emotion-hash.MIT

---

name: "@emotion/memoize"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.7.4
license_file_path: licenses/bin/@emotion-memoize.MIT

---

name: "@emotion/serialize"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.11.16
license_file_path: licenses/bin/@emotion-serialize.MIT

---

name: "@emotion/sheet"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.9.4
license_file_path: licenses/bin/@emotion-sheet.MIT

---

name: "@emotion/stylis"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.8.5
license_file_path: licenses/bin/@emotion-stylis.MIT

---

name: "@emotion/unitless"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.7.5
license_file_path: licenses/bin/@emotion-unitless.MIT

---

name: "@emotion/utils"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.11.3
license_file_path: licenses/bin/@emotion-utils.MIT

---

name: "@emotion/weak-memoize"
license_category: binary
module: web-console
license_name: MIT License
copyright: Emotion team and other contributors
version: 0.2.5
license_file_path: licenses/bin/@emotion-weak-memoize.MIT

---

name: "@hypnosphi/create-react-context"
license_category: binary
module: web-console
license_name: MIT License
copyright: James Kyle
version: 0.3.1
license_file_path: licenses/bin/@hypnosphi-create-react-context.MIT

---

name: "@juggle/resize-observer"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Juggle
version: 3.4.0

---

name: "@popperjs/core"
license_category: binary
module: web-console
license_name: MIT License
copyright: Federico Zivolo
version: 2.11.8
license_file_path: licenses/bin/@popperjs-core.MIT

---

name: "@types/dom4"
license_category: binary
module: web-console
license_name: MIT License
copyright: Microsoft Corporation.
version: 2.0.2
license_file_path: licenses/bin/@types-dom4.MIT

---

name: "@types/parse-json"
license_category: binary
module: web-console
license_name: MIT License
copyright: Microsoft Corporation.
version: 4.0.0
license_file_path: licenses/bin/@types-parse-json.MIT

---

name: "@types/prop-types"
license_category: binary
module: web-console
license_name: MIT License
copyright: Microsoft Corporation.
version: 15.7.11
license_file_path: licenses/bin/@types-prop-types.MIT

---

name: "@types/react"
license_category: binary
module: web-console
license_name: MIT License
copyright: Microsoft Corporation.
version: 18.2.42
license_file_path: licenses/bin/@types-react.MIT

---

name: "@types/scheduler"
license_category: binary
module: web-console
license_name: MIT License
copyright: Microsoft Corporation.
version: 0.16.8
license_file_path: licenses/bin/@types-scheduler.MIT

---

name: "ace-builds"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Ajax.org B.V.
version: 1.4.14
license_file_path: licenses/bin/ace-builds.BSD3

---

name: "ansi-styles"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 3.2.1
license_file_path: licenses/bin/ansi-styles.MIT

---

name: "asynckit"
license_category: binary
module: web-console
license_name: MIT License
copyright: Alex Indigo
version: 0.4.0
license_file_path: licenses/bin/asynckit.MIT

---

name: "axios"
license_category: binary
module: web-console
license_name: MIT License
copyright: Matt Zabriskie
version: 1.6.7
license_file_path: licenses/bin/axios.MIT

---

name: "babel-plugin-emotion"
license_category: binary
module: web-console
license_name: MIT License
copyright: Kye Hohenberger
version: 10.2.2
license_file_path: licenses/bin/babel-plugin-emotion.MIT

---

name: "babel-plugin-macros"
license_category: binary
module: web-console
license_name: MIT License
copyright: Kent C. Dodds
version: 2.8.0
license_file_path: licenses/bin/babel-plugin-macros.MIT

---

name: "babel-plugin-syntax-jsx"
license_category: binary
module: web-console
license_name: MIT License
copyright: Syntax JSX team and other contributors
version: 6.18.0
license_file_path: licenses/bin/babel-plugin-syntax-jsx.MIT

---

name: "call-bind"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.0.2
license_file_path: licenses/bin/call-bind.MIT

---

name: "callsites"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 3.1.0
license_file_path: licenses/bin/callsites.MIT

---

name: "camel-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 4.1.2
license_file_path: licenses/bin/camel-case.MIT

---

name: "capital-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 1.0.4
license_file_path: licenses/bin/capital-case.MIT

---

name: "chalk"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
version: 2.4.2
license_file_path: licenses/bin/chalk.MIT

---

name: "change-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 4.1.2
license_file_path: licenses/bin/change-case.MIT

---

name: "chronoshift"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Vadim Ogievetsky
version: 0.10.0

---

name: "classnames"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jed Watson
version: 2.3.2
license_file_path: licenses/bin/classnames.MIT

---

name: "color-convert"
license_category: binary
module: web-console
license_name: MIT License
copyright: Heather Arthur
version: 1.9.3
license_file_path: licenses/bin/color-convert.MIT

---

name: "color-name"
license_category: binary
module: web-console
license_name: MIT License
copyright: DY
version: 1.1.3
license_file_path: licenses/bin/color-name.MIT

---

name: "combined-stream"
license_category: binary
module: web-console
license_name: MIT License
copyright: Felix Geisendörfer
version: 1.0.8
license_file_path: licenses/bin/combined-stream.MIT

---

name: "commander"
license_category: binary
module: web-console
license_name: MIT License
copyright: TJ Holowaychuk
version: 2.20.0
license_file_path: licenses/bin/commander.MIT

---

name: "constant-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/constant-case.MIT

---

name: "convert-source-map"
license_category: binary
module: web-console
license_name: MIT License
copyright: Thorsten Lorenz
version: 1.6.0
license_file_path: licenses/bin/convert-source-map.MIT

---

name: "copy-to-clipboard"
license_category: binary
module: web-console
license_name: MIT License
copyright: sudodoki
version: 3.2.0
license_file_path: licenses/bin/copy-to-clipboard.MIT

---

name: "core-js"
license_category: binary
module: web-console
license_name: MIT License
copyright: Denis Pushkarev
version: 3.10.1
license_file_path: licenses/bin/core-js.MIT

---

name: "cosmiconfig"
license_category: binary
module: web-console
license_name: MIT License
copyright: David Clark
version: 6.0.0
license_file_path: licenses/bin/cosmiconfig.MIT

---

name: "create-emotion"
license_category: binary
module: web-console
license_name: MIT License
copyright: Kye Hohenberger
version: 10.0.27
license_file_path: licenses/bin/create-emotion.MIT

---

name: "csstype"
license_category: binary
module: web-console
license_name: MIT License
copyright: Fredrik Nicol
version: 2.6.17
license_file_path: licenses/bin/csstype.MIT

---

name: "d3-array"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.12.1
license_file_path: licenses/bin/d3-array.BSD3

---

name: "d3-axis"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.1.0
license_file_path: licenses/bin/d3-axis.BSD3

---

name: "d3-color"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.0.0
license_file_path: licenses/bin/d3-color.BSD3

---

name: "d3-dsv"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.0.0
license_file_path: licenses/bin/d3-dsv.BSD3

---

name: "d3-format"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 1.4.1
license_file_path: licenses/bin/d3-format.BSD3

---

name: "d3-interpolate"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.0.1
license_file_path: licenses/bin/d3-interpolate.BSD3

---

name: "d3-scale"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 3.3.0
license_file_path: licenses/bin/d3-scale.BSD3

---

name: "d3-selection"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.0.0
license_file_path: licenses/bin/d3-selection.BSD3

---

name: "d3-time-format"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 2.2.1
license_file_path: licenses/bin/d3-time-format.BSD3

---

name: "d3-time"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 1.1.0
license_file_path: licenses/bin/d3-time.BSD3

---

name: "date-fns-tz"
license_category: binary
module: web-console
license_name: MIT License
copyright: Marnus Weststrate
version: 1.3.8
license_file_path: licenses/bin/date-fns-tz.MIT

---

name: "date-fns"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sasha Koss and Lesha Koss https://kossnocorp.mit-license.org
version: 2.30.0
license_file_path: licenses/bin/date-fns.MIT

---

name: "deep-equal"
license_category: binary
module: web-console
license_name: MIT License
copyright: James Halliday
version: 1.1.1
license_file_path: licenses/bin/deep-equal.MIT

---

name: "define-properties"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.2.0
license_file_path: licenses/bin/define-properties.MIT

---

name: "delayed-stream"
license_category: binary
module: web-console
license_name: MIT License
copyright: Felix Geisendörfer
version: 1.0.0
license_file_path: licenses/bin/delayed-stream.MIT

---

name: "diff-match-patch"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Google
version: 1.0.5

---

name: "diff"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Kevin Decker <kpdecker@gmail.com>
version: 4.0.1
license_file_path: licenses/bin/diff.BSD3

---

name: "dom-helpers"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jason Quense
version: 5.2.1
license_file_path: licenses/bin/dom-helpers.MIT

---

name: "dom4"
license_category: binary
module: web-console
license_name: MIT License
copyright: Andrea Giammarchi
version: 2.1.6
license_file_path: licenses/bin/dom4.MIT

---

name: "dot-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/dot-case.MIT

---

name: "echarts"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Apache Software Foundation
version: 5.4.3

---

name: "emotion"
license_category: binary
module: web-console
license_name: MIT License
copyright: Kye Hohenberger
version: 10.0.27
license_file_path: licenses/bin/emotion.MIT

---

name: "error-ex"
license_category: binary
module: web-console
license_name: MIT License
copyright: JD Ballard
version: 1.3.2
license_file_path: licenses/bin/error-ex.MIT

---

name: "escape-string-regexp"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 1.0.5
license_file_path: licenses/bin/escape-string-regexp.MIT

---

name: "file-saver"
license_category: binary
module: web-console
license_name: MIT License
copyright: Eli Grey
version: 2.0.5
license_file_path: licenses/bin/file-saver.MIT

---

name: "find-root"
license_category: binary
module: web-console
license_name: MIT License
copyright: jsdnxx
version: 1.1.0
license_file_path: licenses/bin/find-root.MIT

---

name: "follow-redirects"
license_category: binary
module: web-console
license_name: MIT License
copyright: Ruben Verborgh
version: 1.15.5
license_file_path: licenses/bin/follow-redirects.MIT

---

name: "fontsource-open-sans"
license_category: binary
module: web-console
license_name: MIT License
copyright: Lotus
version: 3.0.9
license_file_path: licenses/bin/fontsource-open-sans.MIT

---

name: "form-data"
license_category: binary
module: web-console
license_name: MIT License
copyright: Felix Geisendörfer
version: 4.0.0
license_file_path: licenses/bin/form-data.MIT

---

name: "function-bind"
license_category: binary
module: web-console
license_name: MIT License
copyright: Raynos
version: 1.1.1
license_file_path: licenses/bin/function-bind.MIT

---

name: "functions-have-names"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.2.3
license_file_path: licenses/bin/functions-have-names.MIT

---

name: "get-intrinsic"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.2.0
license_file_path: licenses/bin/get-intrinsic.MIT

---

name: "gud"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jamie Kyle
version: 1.0.0
license_file_path: licenses/bin/gud.MIT

---

name: "has-flag"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 3.0.0
license_file_path: licenses/bin/has-flag.MIT

---

name: "has-own-prop"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 2.0.0
license_file_path: licenses/bin/has-own-prop.MIT

---

name: "has-property-descriptors"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.0.0
license_file_path: licenses/bin/has-property-descriptors.MIT

---

name: "has-symbols"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.0.3
license_file_path: licenses/bin/has-symbols.MIT

---

name: "has-tostringtag"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.0.0
license_file_path: licenses/bin/has-tostringtag.MIT

---

name: "has"
license_category: binary
module: web-console
license_name: MIT License
copyright: Thiago de Arruda
version: 1.0.3
license_file_path: licenses/bin/has.MIT

---

name: "header-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 2.0.4
license_file_path: licenses/bin/header-case.MIT

---

name: "history"
license_category: binary
module: web-console
license_name: MIT License
copyright: Michael Jackson
version: 4.10.1
license_file_path: licenses/bin/history.MIT

---

name: "hjson"
license_category: binary
module: web-console
license_name: MIT License
copyright: Christian Zangl
version: 3.2.2
license_file_path: licenses/bin/hjson.MIT

---

name: "hoist-non-react-statics"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Michael Ridgway
version: 3.3.0
license_file_path: licenses/bin/hoist-non-react-statics.BSD3

---

name: "iconv-lite"
license_category: binary
module: web-console
license_name: MIT License
copyright: Alexander Shtuchkin
version: 0.4.24
license_file_path: licenses/bin/iconv-lite.MIT

---

name: "immutable-class"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Vadim Ogievetsky
version: 0.11.2

---

name: "import-fresh"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 3.3.0
license_file_path: licenses/bin/import-fresh.MIT

---

name: "internmap"
license_category: binary
module: web-console
license_name: ISC License
copyright: Mike Bostock
version: 1.0.1
license_file_path: licenses/bin/internmap.ISC

---

name: "is-arguments"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.1.1
license_file_path: licenses/bin/is-arguments.MIT

---

name: "is-arrayish"
license_category: binary
module: web-console
license_name: MIT License
copyright: Qix
version: 0.2.1
license_file_path: licenses/bin/is-arrayish.MIT

---

name: "is-core-module"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 2.10.0
license_file_path: licenses/bin/is-core-module.MIT

---

name: "is-date-object"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.0.5
license_file_path: licenses/bin/is-date-object.MIT

---

name: "is-regex"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.1.4
license_file_path: licenses/bin/is-regex.MIT

---

name: "isarray"
license_category: binary
module: web-console
license_name: MIT License
copyright: Julian Gruber
version: 0.0.1
license_file_path: licenses/bin/isarray.MIT

---

name: "js-tokens"
license_category: binary
module: web-console
license_name: MIT License
copyright: Simon Lydell
version: 4.0.0
license_file_path: licenses/bin/js-tokens.MIT

---

name: "json-bigint-native"
license_category: binary
module: web-console
license_name: MIT License
copyright: Vadim Ogievetsky, Andrey Sidorov
version: 1.2.0
license_file_path: licenses/bin/json-bigint-native.MIT

---

name: "json-parse-even-better-errors"
license_category: binary
module: web-console
license_name: MIT License
copyright: Kat Marchán
version: 2.3.1
license_file_path: licenses/bin/json-parse-even-better-errors.MIT

---

name: "lines-and-columns"
license_category: binary
module: web-console
license_name: MIT License
copyright: Brian Donovan
version: 1.1.6
license_file_path: licenses/bin/lines-and-columns.MIT

---

name: "lodash.debounce"
license_category: binary
module: web-console
license_name: MIT License
copyright: John-David Dalton
version: 4.0.8
license_file_path: licenses/bin/lodash.debounce.MIT

---

name: "lodash.escape"
license_category: binary
module: web-console
license_name: MIT License
copyright: John-David Dalton
version: 4.0.1
license_file_path: licenses/bin/lodash.escape.MIT

---

name: "lodash.get"
license_category: binary
module: web-console
license_name: MIT License
copyright: John-David Dalton
version: 4.4.2
license_file_path: licenses/bin/lodash.get.MIT

---

name: "lodash.isequal"
license_category: binary
module: web-console
license_name: MIT License
copyright: John-David Dalton
version: 4.5.0
license_file_path: licenses/bin/lodash.isequal.MIT

---

name: "lodash"
license_category: binary
module: web-console
license_name: MIT License
copyright: John-David Dalton
version: 4.17.21
license_file_path: licenses/bin/lodash.MIT

---

name: "loose-envify"
license_category: binary
module: web-console
license_name: MIT License
copyright: Andres Suarez
version: 1.4.0
license_file_path: licenses/bin/loose-envify.MIT

---

name: "lower-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 2.0.2
license_file_path: licenses/bin/lower-case.MIT

---

name: "memoize-one"
license_category: binary
module: web-console
license_name: MIT License
copyright: Alex Reardon
version: 5.1.1
license_file_path: licenses/bin/memoize-one.MIT

---

name: "mime-db"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jonathan Ong <me@jongleberry.com>
version: 1.52.0
license_file_path: licenses/bin/mime-db.MIT

---

name: "mime-types"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jonathan Ong <me@jongleberry.com>
version: 2.1.35
license_file_path: licenses/bin/mime-types.MIT

---

name: "moment-timezone"
license_category: binary
module: web-console
license_name: MIT License
copyright: Tim Wood
version: 0.5.43
license_file_path: licenses/bin/moment-timezone.MIT

---

name: "moment"
license_category: binary
module: web-console
license_name: MIT License
copyright: Iskren Ivov Chernev
version: 2.29.4
license_file_path: licenses/bin/moment.MIT

---

name: "no-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/no-case.MIT

---

name: "normalize.css"
license_category: binary
module: web-console
license_name: MIT License
copyright: Nicolas Gallagher and Jonathan Neal
version: 8.0.1
license_file_path: licenses/bin/normalize.css.MIT

---

name: "numeral"
license_category: binary
module: web-console
license_name: MIT License
copyright: Adam Draper
version: 2.0.6
license_file_path: licenses/bin/numeral.MIT

---

name: "object-assign"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 4.1.1
license_file_path: licenses/bin/object-assign.MIT

---

name: "object-is"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.1.5
license_file_path: licenses/bin/object-is.MIT

---

name: "object-keys"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.1.1
license_file_path: licenses/bin/object-keys.MIT

---

name: "opensans"
license_category: binary
module: web-console
license_name: Apache License version 2.0
copyright: Google
version: 1.101.0

---

name: "param-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/param-case.MIT

---

name: "parent-module"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 1.0.1
license_file_path: licenses/bin/parent-module.MIT

---

name: "parse-json"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 5.2.0
license_file_path: licenses/bin/parse-json.MIT

---

name: "pascal-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.1.2
license_file_path: licenses/bin/pascal-case.MIT

---

name: "path-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/path-case.MIT

---

name: "path-parse"
license_category: binary
module: web-console
license_name: MIT License
copyright: Javier Blanco
version: 1.0.7
license_file_path: licenses/bin/path-parse.MIT

---

name: "path-to-regexp"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey (hello@blakeembrey.com)
version: 1.7.0
license_file_path: licenses/bin/path-to-regexp.MIT

---

name: "path-type"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 4.0.0
license_file_path: licenses/bin/path-type.MIT

---

name: "popper.js"
license_category: binary
module: web-console
license_name: MIT License
copyright: Federico Zivolo
version: 1.16.1
license_file_path: licenses/bin/popper.js.MIT

---

name: "prop-types"
license_category: binary
module: web-console
license_name: MIT License
copyright: Facebook, Inc.
version: 15.7.2
license_file_path: licenses/bin/prop-types.MIT

---

name: "proxy-from-env"
license_category: binary
module: web-console
license_name: MIT License
copyright: Rob Wu
version: 1.1.0
license_file_path: licenses/bin/proxy-from-env.MIT

---

name: "react-ace"
license_category: binary
module: web-console
license_name: MIT License
copyright: James Hrisho
version: 10.1.0
license_file_path: licenses/bin/react-ace.MIT

---

name: "react-day-picker"
license_category: binary
module: web-console
license_name: MIT License
copyright: Giampaolo Bellavite
version: 7.4.9
license_file_path: licenses/bin/react-day-picker.MIT

---

name: "react-diff-viewer"
license_category: binary
module: web-console
license_name: MIT License
copyright: Pranesh Ravi
version: 3.1.1
license_file_path: licenses/bin/react-diff-viewer.MIT

---

name: "react-dom"
license_category: binary
module: web-console
license_name: MIT License
copyright: Facebook, Inc. and its affiliates.
version: 18.2.0
license_file_path: licenses/bin/react-dom.MIT

---

name: "react-fast-compare"
license_category: binary
module: web-console
license_name: MIT License
copyright: Chris Bolin
version: 3.2.2
license_file_path: licenses/bin/react-fast-compare.MIT

---

name: "react-is"
license_category: binary
module: web-console
license_name: MIT License
copyright: Facebook, Inc. and its affiliates.
version: 16.8.6
license_file_path: licenses/bin/react-is.MIT

---

name: "react-popper"
license_category: binary
module: web-console
license_name: MIT License
copyright: Travis Arnold
version: 1.3.11
license_file_path: licenses/bin/react-popper.MIT

---

name: "react-router-dom"
license_category: binary
module: web-console
license_name: MIT License
copyright: Remix Software
version: 5.3.4
license_file_path: licenses/bin/react-router-dom.MIT

---

name: "react-router"
license_category: binary
module: web-console
license_name: MIT License
copyright: Remix Software
version: 5.3.4
license_file_path: licenses/bin/react-router.MIT

---

name: "react-splitter-layout"
license_category: binary
module: web-console
license_name: MIT License
copyright: Yang Liu
version: 4.0.0
license_file_path: licenses/bin/react-splitter-layout.MIT

---

name: "react-table"
license_category: binary
module: web-console
license_name: MIT License
copyright: Tanner Linsley
version: 6.10.3
license_file_path: licenses/bin/react-table.MIT

---

name: "react-transition-group"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: React Community
version: 4.4.5
license_file_path: licenses/bin/react-transition-group.BSD3

---

name: "react"
license_category: binary
module: web-console
license_name: MIT License
copyright: Facebook, Inc. and its affiliates.
version: 18.2.0
license_file_path: licenses/bin/react.MIT

---

name: "regenerator-runtime"
license_category: binary
module: web-console
license_name: MIT License
copyright: Ben Newman
version: 0.13.11
license_file_path: licenses/bin/regenerator-runtime.MIT

---

name: "regexp.prototype.flags"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.5.0
license_file_path: licenses/bin/regexp.prototype.flags.MIT

---

name: "resolve-from"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 4.0.0
license_file_path: licenses/bin/resolve-from.MIT

---

name: "resolve-pathname"
license_category: binary
module: web-console
license_name: MIT License
copyright: Michael Jackson
version: 3.0.0
license_file_path: licenses/bin/resolve-pathname.MIT

---

name: "resolve"
license_category: binary
module: web-console
license_name: MIT License
copyright: James Halliday
version: 1.22.1
license_file_path: licenses/bin/resolve.MIT

---

name: "rw"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Mike Bostock
version: 1.3.3
license_file_path: licenses/bin/rw.BSD3

---

name: "safe-buffer"
license_category: binary
module: web-console
license_name: MIT License
copyright: Feross Aboukhadijeh
version: 5.1.2
license_file_path: licenses/bin/safe-buffer.MIT

---

name: "safer-buffer"
license_category: binary
module: web-console
license_name: MIT License
copyright: Nikita Skovoroda
version: 2.1.2
license_file_path: licenses/bin/safer-buffer.MIT

---

name: "scheduler"
license_category: binary
module: web-console
license_name: MIT License
copyright: Facebook, Inc. and its affiliates.
version: 0.23.0
license_file_path: licenses/bin/scheduler.MIT

---

name: "sentence-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/sentence-case.MIT

---

name: "snake-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 3.0.4
license_file_path: licenses/bin/snake-case.MIT

---

name: "source-map"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Nick Fitzgerald
version: 0.5.7
license_file_path: licenses/bin/source-map.BSD3

---

name: "supports-color"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 5.5.0
license_file_path: licenses/bin/supports-color.MIT

---

name: "supports-preserve-symlinks-flag"
license_category: binary
module: web-console
license_name: MIT License
copyright: Jordan Harband
version: 1.0.0
license_file_path: licenses/bin/supports-preserve-symlinks-flag.MIT

---

name: "tiny-invariant"
license_category: binary
module: web-console
license_name: MIT License
copyright: Alex Reardon
version: 1.0.6
license_file_path: licenses/bin/tiny-invariant.MIT

---

name: "tiny-warning"
license_category: binary
module: web-console
license_name: MIT License
copyright: Alex Reardon
version: 1.0.3
license_file_path: licenses/bin/tiny-warning.MIT

---

name: "to-fast-properties"
license_category: binary
module: web-console
license_name: MIT License
copyright: Sindre Sorhus
version: 2.0.0
license_file_path: licenses/bin/to-fast-properties.MIT

---

name: "toggle-selection"
license_category: binary
module: web-console
license_name: MIT License
copyright: sudodoki
version: 1.0.6
license_file_path: licenses/bin/toggle-selection.MIT

---

name: "tslib"
license_category: binary
module: web-console
license_name: Zero-Clause BSD
copyright: Microsoft Corp.
version: 2.3.0
license_file_path: licenses/bin/tslib.0BSD

---

name: "typed-styles"
license_category: binary
module: web-console
license_name: MIT License
copyright: lttb
version: 0.0.7
license_file_path: licenses/bin/typed-styles.MIT

---

name: "upper-case-first"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 2.0.2
license_file_path: licenses/bin/upper-case-first.MIT

---

name: "upper-case"
license_category: binary
module: web-console
license_name: MIT License
copyright: Blake Embrey
version: 2.0.2
license_file_path: licenses/bin/upper-case.MIT

---

name: "use-resize-observer"
license_category: binary
module: web-console
license_name: MIT License
copyright: Viktor Hubert
version: 9.1.0
license_file_path: licenses/bin/use-resize-observer.MIT

---

name: "use-sync-external-store"
license_category: binary
module: web-console
license_name: MIT License
copyright: Facebook, Inc. and its affiliates.
version: 1.2.0
license_file_path: licenses/bin/use-sync-external-store.MIT

---

name: "uuid"
license_category: binary
module: web-console
license_name: MIT License
copyright: Robert Kieffer and other contributors
version: 7.0.2
license_file_path: licenses/bin/uuid.MIT

---

name: "value-equal"
license_category: binary
module: web-console
license_name: MIT License
copyright: Michael Jackson
version: 1.0.1
license_file_path: licenses/bin/value-equal.MIT

---

name: "warning"
license_category: binary
module: web-console
license_name: MIT License
copyright: Berkeley Martinez
version: 4.0.3
license_file_path: licenses/bin/warning.MIT

---

name: "yaml"
license_category: binary
module: web-console
license_name: ISC License
copyright: Eemeli Aro
version: 1.10.2
license_file_path: licenses/bin/yaml.ISC

---

name: "zrender"
license_category: binary
module: web-console
license_name: BSD-3-Clause License
copyright: Baidu Inc.
version: 5.4.4
license_file_path: licenses/bin/zrender.BSD3

---

name: "zustand"
license_category: binary
module: web-console
license_name: MIT License
copyright: Paul Henschel
version: 4.3.2
license_file_path: licenses/bin/zustand.MIT
# Web console modules end
