Apache Daffodil
Copyright 2021 The Apache Software Foundation

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

Based on source code originally developed by
- The Univerisity of Illinois National Center for Supercomputing Applications (http://www.ncsa.illinois.edu/)
- Tresys Technology (http://www.tresys.com/)
- International Business Machines Corporation (http://www.ibm.com)

The following NOTICE information applies to components distributed with this project:

This product includes derived works from Scala
  Scala
  Copyright (c) 2002-2020 EPFL
  Copyright (c) 2011-2020 Lightbend, Inc.

  Scala includes software developed at
  LAMP/EPFL (https://lamp.epfl.ch/) and
  Lightbend, Inc. (https://www.lightbend.com/).

  The derived work is adapted from scala/src/library/scala/Symbol.scala:
    https://github.com/scala/scala/blob/904e3a5d2b9616b9c533d77d0c51652b138e8659/src/library/scala/Symbol.scala
  and can be found in:
    daffodil-lib/src/main/scala/org/apache/daffodil/util/UniquenessCache.scala
